이것은 임베디드 Linux 시스템이므로 상황이 약간 다릅니다. 절대 경로를 사용하여 매개변수가 포함된 바이너리를 실행하려고 하는데 작동하지 않습니다. 예를 들어, 폴더에서 바이너리를 실행하는 경우 바이너리가 폴더에 있고 /home/root/test folder
다음을 실행합니다.
root@user:~/test# ./mybinary 1 2
문제없이 작동합니다. 하지만 다음은 작동하지 않습니다. 매개변수를 이해할 수 없는 것 같습니다.
root@user:~# /home/root/test/mybinary 1 2
crontab
마지막으로 이 바이너리를 실행하기 위해 절대 경로를 사용하여 호출 하고 싶습니다 .
답변1
프로그램이 특정 디렉터리에서 시작해야 하는 경우(상대 경로를 사용하여 해당 디렉터리에서 일부 파일을 읽고 있기 때문일 수 있음) 먼저 디렉터리를 변경하면 됩니다.
cd /home/root/test; mybinary 1 2
완료되면 다른 CD를 추가하여 다시 변경할 수 있습니다.
cd /home/root/test; mybinary 1 2; cd -
후자는 crontab에서 실행하는 경우 중복되지만 이 경우 두 명령을 하나로 결합해야 합니다.
(cd /home/root/test; mybinary 1 2)
이 목적을 위해 별도의 스크립트를 만드는 것은 과도하게 설계된 것 같습니다.
crontab의 주석을 잊지 마세요. 프로그램 작성자인 경우 고정된 구성 파일(예: ~/.mybinaryrc 또는 ~/.mybinary.conf 등)에서 읽거나 호출할 수 있도록 파일을 찾을 디렉터리 스위치를 제공해야 합니다. 그런 식으로요:
mybinary --startdir ~/home/root/test 1 2