サービスでcrontabを編集できません

サービスでcrontabを編集できません

sudo service autoshutdown start毎日予約または中断して自動的に閉じたいですsudo service autoshutdown stop

/etc/systemd/system/autoshutdown.service

[Unit]
Description=AutoShutdown
[Service]
User = root
Type = oneshot
ExecStart=/etc/systemd/system/autoshutdown.sh
ExecStop=/usr/bin/crontab -r
[Install]
WantedBy=multi-user.target

/etc/systemd/system/autoshutdown.sh

#!/bin/bash
echo "scheduling a shutdown 19:00..."
whoami
crontab -l | cat - /etc/systemd/system/autoshutdown.txt > crontab.txt && crontab crontab.txt
echo "crontab is now"
crontab -l

/etc/systemd/system/autoshutdown.txt

50 18 * * * /sbin/shutdown +10

すべてが素晴らしかった。だからstartingサービスが正しく実行されます。statusingサービスを見るとき

[省略] autoshutdown.sh[11178]:19時終了予約...

[省略] autoshutdown.sh[11178]: ルート

[省略] autoshutdown.sh[11178]: 50 18 * * * /sbin/shutdown +10

だから、すべてが大丈夫に見えます。ただし、後者はsudo crontab -l空のテーブルを返します。

私のクローンタブは「どこ」に行きましたか?

おそらく[非]関連質問:

  1. root以外のユーザーでcrontabを編集できない
  2. クローンタブを編集できません

ベストアンサー1

いいですね。目的の動作に最適なオプションはRemainAfterExit=yes(デフォルト:いいえ)です。

それ以外の場合は、ExecStart完了したらExecStopすぐに実行してください。

源泉:FreeDesktopシステムマニュアル

おすすめ記事