私のスクリプトはプロセスを起動し、プロセスの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はローカルrootユーザーにエラーを電子メールで送信します。
xxx
crontabでコマンドを指定してユーザーアカウントでコマンドを実行するか、ユーザーとしてログインして実行してユーザーxxx
のcrontab -e
「プライベート」crontabを編集することも価値があるかもしれませんxxx
。
答え2
申し訳ありません。スクリプトがexHDDのサブフォルダにあると言いましたが、それは間違っていました。スクリプトは/home/subfolderに保存されていますが、もはや重要ではありません。クローンを再インストールするだけです。なぜか理解できません...