2011-12-16 18 views
1

ubuntuのシャットダウン時に1つ以上のコマンドとスクリプトを実行するには?システム起動時に/ etc/profileや〜/ .bashrcのようなスクリプトはありますか? 私はLinuxのシャットダウンは、killシグナルを処理することに加えて、多くの原因があるかもしれないことを知っています。ubuntu shutdownのコマンド

+1

サブ質問のため質問が混乱しています。/etc/profileと〜/ .bashrcは、システムの起動時に実行されるのではなく、ユーザーのログインとシェルの起動時に実行されます。だから、あなたはユーザーログアウトを意味するのですか(これはJohn Laineの答えで示唆された〜/ bash_logoutでしょう)。実際にはシステムのシャットダウンを意味します。これは/etc/init.dにあるものと類似しているスクリプトを探していることを意味し、そのようなスクリプトオプションがあります。 –

+0

@Carina、詳細については何をお探しですか?特定のシステムシャットダウンの原因についての詳細、またはシャットダウンにフックを追加してコマンドを実行する方法の詳細 –

答えて

2

Ubuntu 11.04からログアウトするときに実行される〜/ .bash_logoutファイルがあります。わかりませんが、10.04に似たスクリプトがあるとします。 これが役に立ちます。

+0

はい、10.04の〜/ .bash_logoutと同じスクリプトです。 – user379997

+0

これは有用なアドバイスですが、正確にOPが尋ねるものではありません。ユーザーログアウトはシステムシャットダウンと同じではありません。 –

3

システム起動時に/ etc/profileや〜/ .bashrcのようなスクリプトはありますか?

起動時にSysV Initスクリプト(/etc/init.d/*)が呼び出されます。システム起動時にいくつかのアクティビティを呼び出すための簡単で簡単な方法は、/etc/init.d/local(他のディストリビューションでは/etc/rc.local)に入れることです。参照:RcLocalHowto

ubuntuのシャットダウン時に1つ以上のコマンドとスクリプトを実行するにはどうすればよいですか?

あなたがそれらを終了するには、ランレベルX-Zとstop PEDを入力することでstart EDを取得し、実際のinitスクリプトを作成したいかのように聞こえます。参照:UbuntuBootupHowto

私はLinuxシャットダウンには多くの原因があることは知っていますが、killシグナルの処理に加えて、どこでこのようなことができますか?

これを非対話的に行うことは簡単ではありません。 shutdownからの兆候を探して、システムログを通してgrepすることができます。

2

スクリプトは/etc/rc0.d(停止用)と/etc/rc6.d/(再起動用)に置くことができます。スクリプトに実行権限があることを確認してください。

貴様実行レベルがあります:
* 0システム停止
* 1シングルユーザー
* 2フルマルチユーザモード(デフォルト)
* 3-5同じシステムを再起動し
* 6 2としては

実行レベル0は、システム停止条件です。実行レベル0に達すると、/ etc/rc0.d内のすべてのスクリプトが実行されます。

実行レベル6は、システムの再起動を通知するために使用されます。これは、実行レベル0と同じですが、電源をオフにするのではなく、シーケンスの最後にリブートが発行される点が異なります。

#!/bin/sh 

WLANSTATUS=`cat /sys/class/ieee80211/phy*/rfkill*/state` 
test -z $WLANSTATUS && exit 1 

case $1 in 
    hibernate) 
     # Do something before hibernate 
     ;; 
    suspend) 
     # Do something before sleep 
     ;; 
    thaw) 
     # Do something after hibernate 
     ;; 
    resume) 
     # Do something after sleep 
    if [ $WLANSTATUS = 0 ]; then 
     echo 0 > /sys/devices/platform/asus_laptop/wlan  
    elif [ $WLANSTATUS = 1 ]; then 
     echo 1 > /sys/devices/platform/asus_laptop/wlan 
    fi 
     ;; 
    *) echo "somebody is calling me totally wrong." 
     ;; 
esac 

楽しん:あなたは休止状態やスリープ状態にスクリプトを実行したい場合は

は、これは、スクリプトの例です/etc/pm/sleep.d/

にスクリプトを置きます!

関連する問題