cat /lib/systemd/system/test_shutdown.service
[Unit]
Description=hello world
Before=poweroff.target shutdown.target reboot.target
[Service]
Type=oneshot
ExecStart=/bin/bash /home/test_shutdown.sh
[Install]
WantedBy=poweroff.target shutdown.target reboot.target
cat /home/test_shutdown.sh
echo "haha" > /home/test_sys/shutdown.txt
ls -al /home/test_shutdown.sh
-rwxrwxrwx 1 root root 42 Mar 31 19:08 /home/test_shutdown.sh
ls -al /home/test_sys
drwxrwxrwx 2 root root 4096 Mar 31 19:12
drwxr-xr-x 14 root root 4096 Mar 31 19:08
systemctl enable test_shutdown.service
重启后没有/home/test_sys/shutdown.txt,为什么我的服务无法执行?
我已经重写了/lib/systemd/system/test_shutdown.service,如下所示。
[Unit]
Description=hello world
DefaultDependencies=no
Before=reboot.target poweroff.target shutdown.target
[Service]
ExecStart=echo "haha" > /home/test_sys/test.txt
Type=oneshot
[Install]
WantedBy=reboot.target poweroff.target shutdown.target
systemctl status test_shutdown.service
test_shutdown.service - hello world
Loaded: error (Reason: Invalid argument)
Active: inactive (dead)
答案 0 :(得分:1)
在您的第二个服务文件中,它应该是
ExecStart=/bin/echo "haha" > /home/test_sys/test.txt
systemd需要绝对路径。
您尚未提供第一个代码systemctl status
。它可能是写权限问题,也可能是您的shell解释器不是/bin/bash
。可以在shell脚本中更好地使用shebang #!/bin/sh
。
答案 1 :(得分:0)
10:30:00 AKDT
答案 2 :(得分:0)
journalctl | grep test_shutdown.service
4月01日15:05:54 hwy systemd [1]:配置文件/lib/systemd/system/test_shutdown.service被标记为可执行文件。请删除可执行权限位。无论如何都要继续。
chmod 644 /lib/systemd/system/test_shutdown.service