web-dev-qa-db-ja.com

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を使用して実行するにはどうすればよいですか?

6
RonnieDroid

次の2つのアプローチから選択できます。

/lib/systemd/system-sleep/ディレクトリの使用:

00start_my_connectionという別のスクリプトを作成します。

#!/bin/sh
if [ $1 = post ] && [ $2 = suspend ]
then /usr/local/bin/start_my_connection
fi

$1は、履歴書/解凍時に「投稿」、それ以外の場合は「事前」です。いずれの場合も、$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
12
Martin Thornton

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

停止してみてください

3