Linuxmint 18 Cinnamon 64ビットからLinuxmint 17.3 Cinnamon 64ビットに戻り、クローンジョブを作成できなくなりました。別々のルート(/)およびホーム(/home/my-user-name)パーティションがあり、17.3をインストールしたときにホームパーティションを変更せずに残しました。
クローンジョブの作成にはいくつかの困難があり、gnome-schedulerをインストールしてこのようにクローンジョブを作成してみました。次の警告ダイアログが表示されます。
「警告:実行されたジョブのジョブディレクトリ」
メッセージ内容は
「ジョブが実行されるジョブディレクトリに関する注意事項:繰り返しジョブはホームディレクトリで実行されます。」
[OK] をクリックすると、タスクが端末に次のように表示されます。
$ crontab -l
* * * * * env DISPLAY=:0 /home/my-user-name/wallpaper_changer.sh >/dev/null 2>&1 # JOB_ID_4
私の壁紙は毎瞬変わりません。スクリプトはコマンドラインで正しく実行され、出力は生成されません。このスクリプトの権限は8進数744です。これらはすべてMint 18でうまく動作しますが、スクリプトは1日1回だけ実行しました。テスト目的で1分ごとに実行するように設定しました。
一般的なcronジョブの編集方法を試してみると
$ crontab -e
Temporary crontab no longer owned by you.
Error while editing crontab
次に、コメント行で埋められた通常のcrontabテンプレートの代わりに空のNanoバッファを取得します。 /tmp/crontab.lmuwIe/crontab ファイルにナノバッファを書き込もうとすると、次のエラー メッセージが表示されます。
[/tmp/lmuwIe/crontabへの書き込み中にエラーが発生しました:権限が拒否されました。]
ついに、
$ ls -l /usr/bin/crontab
-rwsr-xr-x 1 root crontab 35984 Feb 9 2013 /usr/bin/crontab
クローンジョブを再生成できますか?
$ sudo ls -la /var/spool/cron/crontabs
total 12
drwx-wx--T 2 root crontab 4096 Sep 25 03:23 .
drwxr-xr-x 5 root root 4096 Sep 23 00:05 ..
-rw------- 1 root my-user-name 188 Sep 25 03:23 my-user-name
@Gilles まあ、私は長い道のりに来ました。 cronを再インストールして、奇妙なエラーをすべて削除しました。今、すべてが私が使用したときと同じようにうまくいきます。
$ crontab -e
とは別に長年使ってきたスクリプトは動作しません。
しかし、他のスクリプトは実行されるので迷子になりました。
これが私が今持っているものです:
$ crontab -l
* * * * * env DISPLAY=:0.0 /home/my-user-name/wallpaper_changer.sh
* * * * * date >> /home/my-user-name/crontest.txt
(クローン操作前に20行以上のコメントは含まれていません。)
日付操作は正常に実行されますが、wallpaper_changer.sh 操作は何もしません。私は長年この方法を使用してきましたが、今は動作しません。スクリプトはコマンドラインとcronで正しく実行されます。
$ ls -l /home/my-user-name/wallpaper_changer.sh
-rwxr-xr-x 1 my-user-name my-user-name 694 Jun 2 14:30 /home/my-user-name/wallpaper_changer.sh
$ echo $DISPLAY
:0.0
どうなりますか?
答え1
crontabバイナリの権限を編集し、新しくインストールしたときの権限にリセットする必要があります。
機能しない権限:
ls -la /usr/bin/crontab
-rwsr-xr-x 1 root crontab 40264 Oct 7 2017 /usr/bin/crontab
rootとして実行されるか、sudoを使用して実行されるアクション:
chmod g+s /usr/bin/crontab
chmod u-s /usr/bin/crontab
作業権限:
ls -la /usr/bin/crontab
-rwxr-sr-x 1 root crontab 40264 Oct 7 2017 /usr/bin/crontab
新しいジョブインストールからインポートされたジョブ権限は、インストール中に設定されました。
後でなぜ変わったのか分からないですね。
答え2
$ sudo ls -la /var/spool/cron/crontabs total 12 drwx-wx--T 2 root crontab 4096 Sep 25 03:23 . drwxr-xr-x 5 root root 4096 Sep 23 00:05 .. -rw------- 1 root my-user-name 188 Sep 25 03:23 my-user-name
帰属が/var/spool/cron/crontabs/my-user-name
間違っています。あなたが所有者でなければなりません。これは、cronがファイルを上書きできない理由を説明します。また、ファイルは通常crontab
グループに属していますが、それは重要ではないと思います。
以下を実行してこの問題を解決できます。
sudo chown my-user-name /var/spool/cron/crontabs/my-user-name
この問題の原因は何か、システムの劣化とどのような関係があるのかわかりません。根本的な問題は他の問題につながる可能性があります。