再起動せずにcronジョブを開始する方法は?


11

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

*/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 ...と、仕事が表示されません...何が問題なのですか?


見えない仕事は?
Spack 2013年

1
を開いてcrontab、そのジョブをコメントアウトし、メンテナンスを実行して、コメントを外します...
jasonwryan

回答:


12

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ファイルを削除するだけです。


4

別の解決策は、crontabを編集し、ジョブをコメントアウトして無効にすることです。cron他のジョブをスケジュールするのと同じように、それは少し良いです。

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

crontab -e

ルートではなくユーザーのcrontabの場合:

sudo crontab -e

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.