我有一个脚本,可以在启动时启动我的宽带连接,我想让它从暂停状态恢复时启动。
我的脚本是/usr/local/bin/start_my_connection
它包含了:
#!/bin/sh
sleep 10
nmcli nm wwan on
nmcli con up id "reber connection"`
我应该怎么做才能让它运行systemd
?
答案1
有两种方法可供选择:
使用/lib/systemd/system-sleep/
目录:
创建另一个脚本00start_my_connection
:
#!/bin/sh
if [ $1 = post ] && [ $2 = suspend ]
then /usr/local/bin/start_my_connection
fi
$1
在恢复/解冻时为“post”,否则为“pre”。无论哪种情况,$2
都包含“suspend”、“hibernate”或“hybrid-sleep”。如果您希望脚本在从休眠状态解冻时也能运行,请省略&& [ $2 = suspend ]
。
确保此脚本可执行,方法是使用chmod a+x 00start_my_connection
将此脚本移至/lib/systemd/system-sleep/
使用
sudo mv 00start_my_connection /lib/systemd/system-sleep/
使用服务文件:
创建文件/etc/systemd/system/start_my_connection.service
:
[Unit]
Description=Run start_my_connection
After=suspend.target
#After=hibernate.target
#After=hybrid-sleep.target
[Service]
ExecStart=/usr/local/bin/start_my_connection
[Install]
WantedBy=suspend.target
#WantedBy=hibernate.target
#WantedBy=hybrid-sleep.target
如果您还希望脚本在从休眠状态解冻时运行,请取消注释所有行。然后使用以下命令安装服务文件:
sudo systemctl enable start_my_connection.service
答案2
01myscript
在目录中创建一个文件/etc/pm/sleep.d/
。
该文件的内容应为:
#!/bin/bash
case $1 in
thaw|resume) /usr/local/bin/start_my_connection
;;
esac
使该脚本可执行:sudo chmod +x /etc/pm/sleep.d/01myscript
。
尝试暂停