再起動せずに cron ジョブを開始するにはどうすればいいですか?

再起動せずに cron ジョブを開始するにはどうすればいいですか?

私は cron ジョブを使用してofflineimap2 分ごとに呼び出します:

*/2 * * * * /usr/bin/offlineimap > ~/Maildir/offlineimap.log 2>&1

問題を解決するために、cron ジョブを強制終了する必要がありました。その後、(再起動せずに) cron ジョブを再起動するにはどうすればよいでしょうか? オンラインで次の「解決策」を見つけました:

mylogin@myhost:~$ sudo /etc/init.d/cron restart
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service cron restart

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop cron ; start cron. The restart(8) utility is also available.
cron stop/waiting
cron start/running, process 26958

しかし、 を使用するとps -ef | grep ...、ジョブが表示されません...何が問題なのでしょうか?

答え1

Cronアプローチ

sudo 権限があれば、cron サービスを停止/開始できます。オンラインで見つけた解決策では、それが説明されていたと思います。

使用している Linux ディストリビューションに応じて、次のコマンドを実行できます。

# redhat distros
$ sudo /etc/init.d/crond stop
... do your work ...
$ sudo /etc/init.d/crond start

または、次のコマンドを実行します。

# Debian/Ubuntu distros
$ sudo service cron stop
... do your work ...
$ sudo service cron start

ロックファイルタイプのアプローチ

また、offlineimap タスクをしばらく実行しないようにしたい場合は、/tmp ディレクトリなどに「dontrunofflineimap」ファイルを配置することもできます。

プロセスは次のように動作します。/tmp 内のファイルを次のようにタッチします。

touch /tmp/dontrunofflineimap

cron ジョブは次のように変更されます。

*/2 * * * * [ -f /tmp/dontrunofflineimap ] || /usr/bin/offlineimap > ~/Maildir/offlineimap.log 2>&1

このファイルが存在する間は、基本的にアプリの実行がブロックされますofflineimap。再開したい場合は、/tmp/dontrunofflineimapファイルを削除するだけです。

答え2

別の解決策としては、crontab を編集してジョブをコメントアウトして無効にすることです。cron他のジョブもスケジュールできるので、この方法の方が少し便利です。

次のコマンドが役立ちます:

crontab -e

ユーザーの crontab ではなく、root の crontab の場合:

sudo crontab -e

ジョブをコメントアウトするには、#行の先頭に を追加します。次のようにします。

# */2 * * * * /usr/bin/offlineimap > ~/Maildir/offlineimap.log 2>&1

答え3

あなたは読むことができますhttp://tutscode.com/how-to-use-crontab-in-linux/crontab に関する詳細情報を取得します。

関連情報