我在这里查看了有关 systemd 的每个问题,但似乎找不到答案,所以如果我以某种方式错过了它,我深表歉意。
我只想在启动时运行以下脚本,但似乎必须在 systemd 完成之后运行,因为它依赖于网络和 gui 的启动。我正在尝试设置鼠标垫以允许点击,并尝试运行将我连接到 VPN 的 connect.sh 脚本。下面的脚本完成了我手动运行它时应该做的所有事情,但我一生都无法弄清楚为什么它不会在启动时运行。
启动.sh:
#! /bin/sh
# /root/Scripts/startup.sh
synclient tapbutton1=1 clickfinger2=3 tapbutton2=3
sleep 2
sh /root/Scripts/connect.sh
sleep 10
connect.sh 的内容:
#! /bin/sh
# /root/Scripts/connect.sh
echo "disabling wifi adapter..\n"
ifconfig wlan0 down
sleep 3
macchanger -r wlan0
echo "enabling wifi adapter..\n"
ifconfig wlan0 up
sleep 3
echo "connecting to VPN..\n"
nmcli con up id vpnconnection1
sleep 3
ifconfig
echo "finished\n"
/etc/systemd/system/mystartup.service:
[Unit]
After=network.target
[Service]
ExecStart=/root/Scripts/startup.sh
[Install]
WantedBy=default.target
我运行systemctl enable mystartup.service
并重新启动,但脚本显然尚未运行,因为更改尚未生效。
我究竟做错了什么?
编辑:我更新了脚本以反映脚本位置的绝对路径。运行systemctl
并重新启动,但仍然无法工作。
为了获得更多说明,我只想在启动时运行这两个脚本。将它们注册为服务对我来说没有意义,但我研究的所有内容都将我带到了这里。也就是说,systemctl --state=failed
没有显示 mystartup.service 列出,并service mystartup.service status
说Unit mystartup.service.service could not be found.