コンピュータを起動してからコンピュータを再起動するまで、自動的に実行されるスクリプト(リソースリスト)を知っている人はいますか?
スクリプトが自動的に実行されるように追加できる場所がいくつかありますが、ある程度完全なリストが見つかりませんでした。
たとえば、私は次のことを知っています。
~/.profile
ログイン時に実行crontab -e
特定の時間および/または日付に実行されるスクリプトを追加するために使用できます。
しかし、スクリプトが実行されるようにスクリプトをどこに置くべきかわかりません。
- 起動後にXが初期化される前
- X(または他のグラフィックシェル)が初期化された後、誰かがログインする前に
- Xセッションにログインした後
- 高速ユーザー切り替えの前/後
- Xセッションからログアウトする前
- Xシェルを閉じる前
- X 終了後、システム停止前
- tty-1..6でログイン後/ログアウト前
- SSH経由でログイン後/ログアウト前
そのようなリストがありますか?そうでない場合は、ここで組み立てることができますか?
答え1
Ubuntu Linuxの場合、ソリューションは次のとおりです。
起動後にXが初期化される前:ubuntu-desktopを使用しているユーザーの場合はGDMまたはkubuntu-desktopを使用しているユーザーの場合(KDM)でUbuntuブートX-Windows
GDM / KDMの前にスクリプトを実行するには、独自の起動スクリプトを作成する必要があります。このために、あなたは読むことができますヌボリッチレシピ。
ユーザー切り替え後:
~/.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 マルチユーザーモードはネットワークインターフェイスを構成せず、ネットワークサービスをエクスポートしません。
- サム ネットワーキングを含むマルチユーザーモードはシステムを正常に起動します。
- 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
.
.
.