web-dev-qa-db-ja.com

ログアウト/シャットダウン時にスクリプトを実行するubuntu

Ubuntu9.10マシンのユーザーがログアウトまたはシャットダウンするたびにいくつかのコマンドを実行したいと思います。これを行うための最良の方法は何ですか?それが役立つ場合、すべてのユーザーはgnomeを使用します。

8
gitnoob

いくつかのグーグルの後、私は ログアウト時にスクリプトを実行する方法は? これはスクリプトを$ HOME /.bash_logoutに追加することを示しています。

それが機能しない場合は、追加します

$ HOME/.bash_logout

/ etc/gdm/PostSession/Defaultに移動して、ログアウトスクリプトを正しく実行します。

シャットダウン前と同じように、ユーザーはとにかくログオフされているので、これは両方のベースをカバーするはずです。

3
Arda Xi

KDEを使用している場合(私はkdmでUbuntuを使用しています)

# From the kdm man page
#  http://manpages.ubuntu.com/manpages/oneiric/man1/kdm.1.html

/etc/kde4/kdm/Xreset - script to run as root after session exits

/etc/kde4/kdm/Xsession - script to run as user after login of user

/etc/kde4/kdm/Xsetup - script to run as root before the login dialog appears

/etc/kde4/kdm/Xstartup -  script to run as root before session starts

テストするには:

適切なファイルを開きます。

Sudo emacs /etc/kde4/kdm/Xreset

テストコマンドを追加します(ホームディレクトリにファイルを作成します)

touch  /home/dericbytes/this-file-was-created-by-xreset

次に、ログアウトしてから再度ログインし、新しいファイルが作成されたかどうかを確認しました

ls /home/dericbytes/this*
1
dericybtes

特定のディスプレイマネージャーにバインドされたくない場合は、スクリプトを/etc/X11/Xreset.d/の下に置くことができます。これは、xsessionからログアウトするたびにrootとして実行されます。

例:ユーザーがログアウトするたびにvirtualbox VMをsavestateにしたいので、それを行うスクリプトがあります。 #!/bin/bash su - $USER -c 'vboxmanage list runningvms | cut -d\" -f2 | xargs -I{} vboxmanage controlvm {} savestate'

1
mpho raf

うーん..「シャットダウン時にLinux実行スクリプト」をグーグルで検索すると、最初の結果は buntuフォーラムにあなたの答えを投稿

 chmod + x /etc/init.d/foo.sh

これにより、スクリプトをプログラムとして実行できます。

シャットダウン時にスクリプトを実行するには、次の手法を使用します。

 Sudo ln -s /etc/init.d/foo.sh /etc/rc0.d/K10rensa.sh
Sudo ln -s /etc/init.d/foo.sh/etc /rc6.d/K10rensa.sh

これがどのように機能するかの背景: ランレベルの紹介

-

ちなみに、インターネットを最初に検索したことがないことが明らかな場合は、回答に甘んじることを控えるべきですか(私はここで新しいです..)?

0
Jay Taylor

おそらく ConsoleKit dbusインターフェースを使用できます。

0
baol