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のヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!