关机脚本 ubuntu 16.04 systemd

关机脚本 ubuntu 16.04 systemd

我已经斗争了两天了,但还是没有找到理智。希望有人知道...

我的目标是拥有一个关机脚本,可以在系统重启或关机时停止我自己的一些服务以及其他一些服务。

所以我简化了我的测试脚本并做了以下操作:

创建脚本:/etc/rc.shutdown 内容:

    #!/bin/sh -e
    #
    # rc.shutdown
    #
    #
    # just for test
    echo "last shutdown or reboot:" > /var/log/rc.shutdown.info
    echo `date` >> /var/log/rc.shutdown.info
    sleep 10
    exit 0

Creating the file /etc/rc.startup  
Content:

#!/bin/sh
#
# rc.startup
#
#
# just for test
echo "last boot:" > /var/log/rc.startup.info
echo `date` >> /var/log/rc.startup.info
sleep 5
exit 0

创建服务文件 /etc/systemd/system/rc.shutdown.service
内容:

[Unit]
Description=Shutdown_Reboot Script /etc/rc.shutdown
DefaultDependencies=no
Before=shutdown.target reboot.target halt.target local-fs.target network-online.target network.target
Wants=network-online.target local-fs.target

[Service]
Type=oneshot
ExecStart=/bin/bash /etc/rc.startup
ExecStop=/bin/bash /etc/rc.shutdown
RemainAfterExit=yes
StandardOutput=syslog+console
StandardError=syslog+console

[Install]
WantedBy=shutdown.target reboot.target halt.target

使用以下命令使 rc.startup 和 rc.shutdown 可执行chmod a+x ..

使用以下方式启用服务systemctl enable rc.shutdown

但无论我做什么、尝试什么,脚本都不会在关机时启动...这是什么情况?我做错了什么?

如果有人问我为什么之前要添加所有依赖项,因为我希望它作为系统运行的第一件事之一来运行,以确保“做任何必须做的事情”所需的所有服务都在运行。

相关内容