在Ubuntu 15.04(systemd)中挂起后启动脚本
我有一个脚本,在启动时启动我的宽带连接,我想让它从暂停开始恢复。
我的脚本是/usr/local/bin/start_my_connection
它包含:
#!/bin/sh sleep 10 nmcli nm wwan on nmcli con up id "reber connection"`
我应该怎么做才能使用systemd
运行它?
有两种方法可供选择:
使用/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”。 如果您希望脚本也从hibernate状态解冻,请省略&& [ $2 = suspend ]
。
使用chmod a+x 00start_my_connection
确保此脚本可执行
将此脚本移动到/lib/systemd/system-sleep/
using
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
如果您还希望脚本在从hibernate状态解冻时运行,请取消注释所有行。 然后安装服务文件:
sudo systemctl enable start_my_connection.service
在/etc/pm/sleep.d/
目录中创建一个文件01myscript
。
该文件的内容应为:
#!/bin/bash case $1 in thaw|resume) /usr/local/bin/start_my_connection ;; esac
使该脚本可执行: sudo chmod +x /etc/pm/sleep.d/01myscript
。
试着暂停