systemd
はCentOS 7やRed Hat Linuxで採用されているLinuxの起動処理やプロセス管理を行うためのしくみです。簡単にいうと、起動時にデーモンになってくれる起動設定ファイルのフォーマットです。
👽 systemdファイルのサンプル
こちらはApache(httpd)のsystemdファイルのサンプルです。
# cat /usr/lib/systemd/system/httpd.service [Unit] Description=The Apache HTTP Server After=network.target remote-fs.target nss-lookup.target
[Service] Type=notify EnvironmentFile=/etc/sysconfig/httpd ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND ExecReload=/usr/sbin/httpd $OPTIONS -k graceful ExecStop=/usr/sbin/httpd $OPTIONS -k graceful-stop KillSignal=SIGCONT PrivateTmp=true
[Install] WantedBy=multi-user.target
|
🐠 systemdコマンドの実行と停止
systemd
コマンドを作成したら、サービスの停止実行は次のコマンドで行います。
sudo systemctl start httpd
sudo systemctl stop httpd
|
🍣 systemdコマンドの自動実行・停止
systemd
サービスを起動時に自動でbootしたり、自動起動を停止させるコマンドは次のとおりです。
sudo systemctl enable httpd
sudo systemctl disable httpd
|
😸 systemdファイルの格納先
ディレクトリ |
設定内容 |
/usr/lib/systemd/system |
インストール時の初期設定 |
/etc/systemd/system |
ユーザーによる個別設定 |
🏀 Unitについて
systemdでは「Unit」の単位で処理を管理します。Unitの設定ファイルは次の3つのセクションで別れています。
セクション |
説明 |
Unit |
Unitの依存関係や順序関係など |
Install |
systemctl enable/disable コマンドに影響する設定項目 |
タイプ固定セクション |
タイプごとに固有の設定((Service : プロセスの起動/停止、Mount : ファイルシステムのマウント/アンマウント、socket : ソケットの監視設定、device : システムが認識しているデバイス情報、path : パスの監視、target : 複数のUnitを取り巻とめる)) |
🚌 Unitセクション
「Unitセクション」の主なオプションはこちら。
オプション |
説明 |
Description |
Unitの説明 |
Documentation |
ドキュメントのURL |
Requires |
このUnitの起動の前提となるUnit |
Wants |
このUnitの起動の前提となるUnitを記述 |
After |
このUnitより先に起動すべきUnitを記述 |
Before |
このUnitより後に起動すべきUnitを記述 |
🎂 Installセクション
「Installセクション」の主なオプションはこちらです。
オプション |
説明 |
antedBy |
enable => .wantsディレクトリにリンクを作成 |
RequiredBy |
enable => .requiredディレクトリにリンクを作成 |
Also |
enable/disable => enable/disableするUnitを記述 |
Alias |
enable => Unitの別名を設定 |
🏈 Serviceセクション
オプション |
説明 |
ExecStart |
サービス起動時に実行するコマンド |
ExecReload |
サービスリロードに実行するコマンド |
ExecStop |
サービス停止時のコマンド |
ExecStartPre/ExecStartPost |
サービス起動前後の追加コマンド |
ExecStopPost |
サービス停止後(異常終了時)に実行するコマンド |
EnvironmentFile |
環境変数を読み込むファイル |
Type |
サービスプロセスの起動完了の判定方法(simple: フォアグラウンドで実行、forking: プロセスをフォークしてバックグラウンド実行) |
PIDFile |
fork型サービスのメインプロセスのPIDファイル |
BusName |
D-Bus型サービスのbus接続名 |
Restart |
サービスプロセス停止時の再起動条件(always : 常に再起動を試みる、no : 再起動を行わない、on-failure : 異常終了時のみ再起動) |
PrivateTmp |
(true : このサービス専用の/tmpと/var/tmpを用意する) |
🐹 参考リンク
🖥 VULTRおすすめ
「VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。
最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!