毎週明白なメモリリークでサービスを再起動するために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には必要なすべての設定が含まれています。パスなど、エクスポートした変数を使用します。