在 Ubuntu 15.04(systemd)中暂停后启动脚本

在 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

答案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

尝试暂停

相关内容