系统服务执行的脚本不删除服务文件
Script executed by a systemd service not deleting the service file
我正在尝试创建一个 systemd
服务,该服务在重新启动时执行 shell 脚本,该脚本将删除一些文件,删除服务,然后删除自身。但是当我启用该服务时,它 运行 是脚本,文件被删除,但删除服务失败。我的脚本是:
rm /var/local/myvars/file
systemctl stop myservice.service
systemctl disable myservice.service
rm /etc/systemd/system/myservice.service
systemctl daemon-reload
systemctl reset-failed
rm /var/tmp/myscript
myservice.service 是:
[Unit]
Description = Run script on Reboot
Before =
[Service]
Type=oneshot
ExecStart=/var/tmp/myscript
RemainAfterExit=no
[Install]
WantedBy=multi-user.target
我做错了什么?我想要做的是在重启后删除某些文件,因此我想要一种方法 运行 一些脚本在重启后只执行一次。这是正确的方法还是有其他更好的方法?
我建议您不要将其作为服务。相反,您可以创建一个 cron 作业以在每次重新启动时执行脚本。
你可以做到
sudo crontab -e #to open it as root
然后在下面添加一行:
@reboot /bin/bash /path_to_your_script.
然后保存并关闭文件并输入
systemctl restart cron
以下服务和脚本对我有用。
服务:
[Unit]
Description = Run script on Reboot
Before =
[Service]
Type=simple
ExecStart=/var/tmp/myscript
[Install]
WantedBy=multi-user.target
脚本:
rm -rf files
systemctl disable myservice.service
rm -f /etc/systemd/system/myservice.service
rm -f /var/tmp/myscript
我正在尝试创建一个 systemd
服务,该服务在重新启动时执行 shell 脚本,该脚本将删除一些文件,删除服务,然后删除自身。但是当我启用该服务时,它 运行 是脚本,文件被删除,但删除服务失败。我的脚本是:
rm /var/local/myvars/file
systemctl stop myservice.service
systemctl disable myservice.service
rm /etc/systemd/system/myservice.service
systemctl daemon-reload
systemctl reset-failed
rm /var/tmp/myscript
myservice.service 是:
[Unit]
Description = Run script on Reboot
Before =
[Service]
Type=oneshot
ExecStart=/var/tmp/myscript
RemainAfterExit=no
[Install]
WantedBy=multi-user.target
我做错了什么?我想要做的是在重启后删除某些文件,因此我想要一种方法 运行 一些脚本在重启后只执行一次。这是正确的方法还是有其他更好的方法?
我建议您不要将其作为服务。相反,您可以创建一个 cron 作业以在每次重新启动时执行脚本。
你可以做到
sudo crontab -e #to open it as root
然后在下面添加一行:
@reboot /bin/bash /path_to_your_script.
然后保存并关闭文件并输入
systemctl restart cron
以下服务和脚本对我有用。 服务:
[Unit]
Description = Run script on Reboot
Before =
[Service]
Type=simple
ExecStart=/var/tmp/myscript
[Install]
WantedBy=multi-user.target
脚本:
rm -rf files
systemctl disable myservice.service
rm -f /etc/systemd/system/myservice.service
rm -f /var/tmp/myscript