コンピュータを起動してからシャットダウンするまでの間に、どのスクリプトがいつ自動的に実行されるか (リソース リスト) を知っている人はいますか。
自動的に実行するスクリプトを追加できる場所はいくつか知っていますが、ほぼ完全なリストを把握することはできませんでした。
たとえば、私は次のことを知っています:
~/.profile
ログイン時に実行されるcrontab -e
特定の時間や日付にトリガーされるスクリプトを追加するために使用できます
しかし、スクリプトをどこに置けば実行されるのか分からない
- 起動後、Xが初期化される前
- X(または他のグラフィカルシェル)が初期化された後、誰かがログインする前
- Xセッションにログインした後
- 高速ユーザー切り替えの前/後
- Xセッションからログアウトする前に
- Xシェルのシャットダウン前
- Xのシャットダウン後、システム停止前
- tty-1..6 経由のログイン後/ログアウト前
- SSH経由でログイン後/ログアウト前
そのようなリストはありますか? ない場合は、ここで作成できますか?
答え1
Ubuntu Linux の場合、解決策は次のとおりです。
起動後、X が初期化される前の場合:UbuntuはGDM(ubuntu-desktopを使用している場合)またはKDM(kubuntu-desktopを使用している場合)からX-Windowsを起動します。
GDM/KDMより前のスクリプトを実行するには、独自のupstartスクリプトを作成する必要があります。そのためには、以下をお読みください。アップスタートクックブック。
ユーザーの切り替え後:ファイルにスクリプトを追加する必要があります
~/.bashrc
。tty 経由でログインした後:ファイルにスクリプトを追加する必要があります
~/.bash_profile
。ssh を使用してログインした後、tty を使用してローカル ログインしていないとき:この場合も、同じファイルにスクリプトを追加する必要があります
~/.bash_profile
が、この場合は、環境変数の存在をテストしSSH_CONNECTION
、存在することが判明した場合にのみコマンドを実行します。tty 経由でログアウトする前に:ファイルにスクリプトを追加する必要があります
~/.bash_logout
。ssh 経由でログアウトする前に:ファイルにスクリプトを追加する必要があります
~/.bash_logout
が、この場合も環境変数の存在をテストしSSH_CONNECTION
、存在する場合にのみコマンドを実行します。ファイルに次の行を追加する必要があります。if [[ -n $SSH_CONNECTION ]]
答え2
Linux の組み込みタスクに興味がある場合は、Unix System V スタイルの初期化を実装する操作モードである Linux ランレベルも参照してください。
- 0 停止 システムをシャットダウンします。
- 1 シングルユーザー モード 管理タスク用のモード。
- 2 マルチユーザー モードでは、ネットワーク インターフェイスは構成されず、ネットワーク サービスはエクスポートされません。
- 3 ネットワークを使用したマルチユーザー モード システムを通常どおり起動します。
- 4 未使用/ユーザー定義可能 特別な目的用。
- 5 適切なディスプレイ マネージャーを使用してシステムを通常どおり起動します。 (GUI を使用) ランレベル 3 + ディスプレイ マネージャーとして。
- 6 再起動 システムを再起動します。
たとえば、以下に Linux プロセスとそのランレベル設定の部分的なリストを示します。
chkconfig --list
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off
atd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
auditd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
autofs 0:off 1:off 2:on 3:on 4:on 5:on 6:off
avahi-daemon 0:off 1:off 2:off 3:off 4:off 5:off 6:off
avahi-dnsconfd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
.
.
.