매시간 실행 파일을 실행하도록 크론 작업을 설정하는 방법은 무엇입니까?


94

매시간 한 번씩 gcc를 사용하여 컴파일 된 실행 파일을 실행하는 cron 작업을 설정해야합니다.

루트로 로그인하고 입력했습니다. crontab -e

그런 다음 다음을 입력하고 파일을 저장했습니다.

0 * * * *  /path_to_executable

그러나 cron 작업은 작동하지 않습니다.

입력 할 때 /...path_to_executable세그멘테이션 오류가 발생합니다. 내가 위치한 폴더에서만 실행 파일을 실행할 수 있습니다.이 문제를 해결할 수있는 방법이 있습니까?


8
그것은 나쁜 제목입니다. 크론 작업을 설정하는 방법을 알고 있습니다. 여러분이 알고 싶은 것은 명령을 작동시키는 방법입니다.
David Thornley

5
superuser.com에 속합니다 (프로그래밍과 직접 관련이 없음)
Philipp

3
잘못된 제목이지만 이것이 내가 해결책을 찾은 방법입니다.
Roman Holzner 2014

실행 파일이 시작되었을 수 있습니다. 내부에 syslog (3)를 사용하는 것이 좋습니다 ( 최소한 시작시 로그 메시지를 작성하여 시작되었는지 확인).
실레 Starynkevitch

답변:


159
0 * * * * cd folder_containing_exe && ./exe_name

프로그램을 실행하기 위해 설정해야 할 다른 것이 없으면 작동합니다.


11
; 대신 &&를 사용하십시오. 그렇지 않으면
흥미로운

4
네가 옳아. &&는 cd 대상이 존재하지 않을 가능성이있는 경우 훨씬 낫습니다 (예 : 디렉토리가 다운 된 NFS 서버에있는 경우).
joast 2013-08-13

내 하루를 구하십시오! 감사!
Chiakie

절대 경로 (예 : 루트 디렉토리)도 필요합니다. afaik
drevicko

8

이를 해결하는 해결책은 분할 오류가 발생하는 이유를 찾아서 수정하는 것입니다.


5

@hourly인스턴트를 사용할 수도 있습니다.0 * * * *


이 솔루션에 대해 궁금합니다. @hourly가 0을 의미합니까?
ojblass

1
@ojblass @hourly는의 정확한 동의어이며 0 * * * *차이가 없습니다.
Marek Skiba

2

다른 디렉토리에서 호출하면 실행 파일이 실행되지 않는다는 의미입니까? 이것은 실행 파일의 버그입니다. 한 가지 잠재적 인 이유는 실행 파일에 설치된 폴더의 일부 공유 라이브러리가 필요하기 때문일 수 있습니다. 환경 변수를 확인할 수 있습니다.LD_LIBRARY_PATH



0

그런 식으로 C실행 파일 을 실행할 수 없었기 때문에 shell script다음과 같은 간단한 내용 을 작성했습니다.

cd /..path_to_shell_script
./c_executable_name

cron 작업 목록에서 쉘 스크립트를 호출합니다.


0

사용하다

path_to_exe >> log_file

명령의 출력을 보려면 오류를

path_to_exe &> log_file

또한 사용할 수 있습니다

crontab -l

편집 내용이 저장되었는지 확인합니다.


crontab -l은 루트로 로그인 할 때 cron 작업을 보여줍니다. log_file을 시도했지만 비어 있습니다.
Anonymous
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.