내 스크립트는 프로세스를 시작하고 프로세스의 PID를 파일에 씁니다. 쉘에서 실행하면 다음과 같이 작동합니다.
process & echo $! > /home/xxx/PIDs/process.pid
하지만 cron에 이 작업을 수행하면 프로세스가 실행되지만 PID 파일이 누락됩니다. 나에게는 이것이 이상하다. 무엇이 잘못될 수 있나요?
cronjob은 간단한 @reboot
트리거입니다. Jeff Schaller가 말했듯이 저는 노력했습니다.
*/10 * * * * /home/xxx/bin/process & echo $! > /home/xxx/PIDs/process.pid
그러나 이것은 작동하지 않습니다.
답변1
나에게는 cron 작업을 실행 중인 사용자가 PID 파일에 쓸 수 있는 권한이 없는 것처럼 들립니다 /home/xxx/PIDs/
.
/home
예를 들어 NFS를 통해 설치하거나 SELinux와 같은 것으로 인해 설치하는 경우 이런 일이 발생할 수 있습니다.
지역 이메일을 확인해 보세요. 대부분의 설정에서 cron은 로컬 루트 사용자에게 오류를 이메일로 보냅니다.
xxx
crontab에서 명령을 지정하여 사용자 계정으로 명령을 실행하거나 사용자로 로그인 xxx
하고 실행하여 crontab -e
사용자의 "개인" crontab을 편집 하는 것도 가치가 있을 수 있습니다 xxx
.
답변2
죄송합니다. 스크립트가 exHDD의 하위 폴더에 있다고 말했는데, 그건 틀렸습니다. 스크립트는 /home/subfolder에 저장되어 있지만 더 이상 중요하지 않습니다. 크론을 다시 설치하면 됩니다. 왜인지 이해가 안 돼요...