매주 명백한 메모리 누수로 서비스를 다시 시작하기 위해 cronjob을 작성했는데 killproc
명령을 찾을 수 없다는 이메일을 받았습니다.
그것은 /sbin/killproc에 있었고 서비스 스크립트를 수정하고 싶지 않았지만 절대 경로를 사용하는 것을 선호했기 때문에 cron을 통해 수정 사항을 숨기기로 결정했습니다.
따라서 나는 매뉴얼 페이지에서 분명히 말하는 것처럼 crontab 파일의 상단을 설정하고 싶지 않습니다 PATH
(내 매뉴얼 페이지가 아닌 인터넷에서 본 다른 게시물을 기반으로 함). 루트의 PATH를 완전히 압축하는 대신 이 스크립트에 대한 경로 변수를 설정하려면 crontab 줄을 어떻게 구성해야 합니까?
너무 길어요 박사님;
이게 내가 하고 싶은 일이야
0 0 * * 0 /etc/init.d/tic_minus restart
내가 피하고 싶은 건 바로 이런 것
받는 사람: 바보
보낸 사람: 모든 고객
tic_minus 중지: /etc/init.d/tic_minus: 43행: killproc: 명령을 찾을 수 없음
tic_minus 시작:
답변1
범위를 제한하려면 서브셸을 사용하세요.
0 0 * * 0 (export PATH=$PATH:/sbin; /etc/init.d/tic_minus restart)
답변2
명령 전에 cron env -version => source env 설정을 신뢰하지 마십시오.
0 0 * * 0 (. /usr/xx/myenv ; /some/cmd ) >> /usr/xx/mylog.log 2>&1
myenv에는 필요한 모든 설정이 포함되어 있습니다. 경로 등 내보낸 변수를 사용합니다.