절대 경로를 사용하여 매개변수로 바이너리 실행

절대 경로를 사용하여 매개변수로 바이너리 실행

이것은 임베디드 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 

관련 정보