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 systemctlenable httpd
# 自動起動の無効化 sudo systemctldisable 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のヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!