web-dev-qa-db-ja.com

Ubuntuでシャットダウンする前にスクリプトを実行する

コンピューターをシャットダウンするときに、オフィスを出る前に実行する必要のある保留中のタスクをいくつか表示したいと思います。

これらのタスクを管理するローカルアプリケーションがあるので、基本的にはコマンドを実行し、実行されたアプリを強制終了した後にシャットダウンします。

私はすでにこれらのオプションを試しました:

/etc/gdm/PostSession/Default

これは、シャットダウンの代わりにログアウトオプションを選択した場合にのみ機能します。

/etc/rc0.d/K01mycustomscript

Xが強制終了された後にスクリプトを実行します。

$HOME/.bash_logout

これは何もしないようです。

./app-to-run && Sudo shutdown -h now

これが気に入らない理由は2つあります。Sudoパスワードの入力を求められることと、ラップトップのシャットダウンボタンを使用できないことです。

Ubuntu10.04を使用しています。

5
juanefren

/etc/rc0.d/READMEをチェックしてください-それは言います

The scripts in this directory are executed once when entering
runlevel 0.

The scripts are all symbolic links whose targets are located in
/etc/init.d/ .

Generally it is not necessary to alter the scripts in this directory.
Their purpose is to stop all services and to make the system ready
for shutdown.

/etc/init.dでスクリプトを作成し、それらを/etc/rc0.d/にシンボリックリンクして、シャットダウン時にスクリプトを実行する必要があります。

1
Chen Levy

/etc/init.d/でinitスクリプトを作成してから、chkconfigを使用して必要なランレベルを構成できます。私はあなたが望むことをしたことはありませんが、私はこのルートから始めます。

1
Patkos Csaba
  • /etc/rc0.d/K01mycustomscript/etc/rc0.d/S01mycustomscriptである必要がある場合があります
  • 実行可能であることを確認してください(chmod 755 /etc/rc0.d/K01mycustomscriptまたはchmod 755 /etc/rc0.d/S01mycustomscript
  • ロギングを試してください。スクリプトの最初にlogger 'mycustomscript START'行を追加し、最後にlogger 'mycustomscript END'を追加してシャットダウンし、/var/log/messagesでログメッセージを探します。
  • 代わりに、/etc/init.d/に開始/停止スクリプトを作成し、適切な/etc/rc*.dディレクトリからそのスクリプトへのシンボリックリンクを作成するか、chkconfigなどのツールを使用するのが慣例であることに注意してください。またはupdate-rc.dでシンボリックリンクを維持します(「Init」ウィキペディアのページを参照)
  • この同様の質問を参照
1
Adam Monsen
  • 実行可能スクリプトをどこかに置きます—/etc/init.dをお勧めします。
  • この場所から/etc/rc0.dからSで始まるシンボリックリンクを作成します(ランレベル0に到達したときにこのスクリプトを開始します。
  • 私はこれをテストしたことがありませんが、マシンはシャットダウンする前にこのスクリプトが終了するのを待つと思います。
0
joep

/ etc/gdm/PostSession/Defaultの方法は機能します。

gdm(または私の場合はmdm)のupstartskriptを「修正」する必要があります。

/etc/init/mdm.conf

line15:ランレベルで停止[016]

に:

rcランレベルの開始を停止する[016]

0
Marc Schildt