在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

试着暂停