Permissions

無法從服務編輯 crontab

  • April 30, 2019

我想通過 安排每日自動關機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 服務時,我看到

$$ omissis $$autoshutdown.sh$$ 11178 $$: 安排 19:00 關機… $$ omissis $$autoshutdown.sh$$ 11178 $$: 根 $$ omissis $$autoshutdown.sh$$ 11178 $$: 50 18 * * * /sbin/關機 +10

所以一切似乎都很好。但是,後者sudo crontab -l返回一個空表。

我的 crontab 去哪兒了?

可能

$$ un $$相關問題:

  1. 無法以非 root 使用者身份編輯 crontab
  2. 無法編輯 crontab

好的,對於所需的行為,最合適的選項是RemainAfterExit=yes(預設值:否)。

否則,一旦ExecStart結束,ExecStop立即執行。

來源:FreeDesktop 系統手冊

引用自:https://unix.stackexchange.com/questions/516295