自動起動
この記事ではシステムの起動・シャットダウンや、ログイン・ログアウトなど特定のイベントが起こった時に自動でスクリプトやアプリケーションを起動する方法について触れています。
目次
デーモン
スクリプトやアプリケーションをデーモンとして簡単に起動することができます、デーモンを参照してください。
Systemd
systemd は initscripts を置き換えるデフォルトの init フレームワークです。systemd によって実行されるサービスは /etc/systemd/system/
のサブフォルダにあります。サービスは systemctl
コマンドを使うことで有効にできます。systemd の詳細や自動起動スクリプトを書く方法については systemd を見て下さい。特定のユーザーでスクリプトを自動実行するには、systemd/ユーザーを見て下さい。
Runit
runit はプロセス管理、同時起動、ユーザー別のサービスツリー、粒状の cgroup 操作、柔軟な依存システム、dbus のペナルティを受けない起動時間を提供する init システムです。root レベルのサービスは /service
にあるシンボリックリンクであり実際のサービスのディレクトリは /etc/sv
にあります。詳しくは Runit のページを見て下さい。
Cron
GUI 以外のシステム設定タスクの自動起動には Cron が使えます。
シェル
コンソールやログイン時にプログラムを自動起動するために、シェルのスタートアップファイル・ディレクトリを使うことができます。シェルのドキュメントや ArchWiki の記事 Bash#設定ファイル や Zsh#アプリケーションの自動起動 を読んで下さい。
Wikipedia:ja:Unixシェル#主なUnixシェルの設定ファイル も参照のこと。
/etc/profile
/etc/profile
はログイン時に全ての Bourne 互換のシェルによって読み込まれます: ログイン時に環境変数を設定したり /etc/profile.d/*.sh
スクリプトを実行してアプリケーション固有の設定を行ったりするのに使います。
グラフィカル
ウィンドウマネージャやデスクトップ環境にログインした時に自動でプログラムを実行するよう設定することができます。
X セッションのスタートアップ
デスクトップアプリケーションの自動起動
以下のフォルダには *.desktop
ファイルが含まれており、X セッションが起動したときに実行されます:
$XDG_CONFIG_DIRS/autostart/
(/etc/xdg/autostart/
デフォルト)/usr/share/gnome/autostart/
(GNOME のみ)$XDG_CONFIG_HOME/autostart/
(~/.config/autostart/
デフォルト)
ユーザー別の ~/.config/autostart/
フォルダに *.desktop
ファイルをコピーすることでシステム全体の設定を上書きすることが可能です。
デスクトップファイルの仕様については Desktop Entry Specification に説明があります。使用するディレクトリの説明は Desktop Application Autostart Specification に詳しい記述がされています。
GNOME, KDE, Xfce
GNOME, KDE, Xfce には自動起動の設定をするための専用の GUI が存在します、それぞれの記事を見て下さい。
LXDE
LXDE#プログラムの自動実行 を見て下さい。
Fluxbox
Fluxbox#プログラムの自動起動 を見て下さい。
Openbox
Openbox#スタートアッププログラム を見て下さい。