systemctl 概要
systemd はシステムの起動プロセスを管理し、システム起動後にバックグラウンドで実行されるすべてのサービス(デーモン)を制御する init システムです。`systemctl` はこの systemd の機能をコマンドラインで操作できるインターフェースです。過去の `service`、`chkconfig`、`reboot`、`shutdown` などのいくつかのコマンドが `systemctl` 一つに統合されました。
systemd ユニット(Unit)の理解
systemd は管理するすべてを「ユニット(Unit)」という概念で抽象化します。各ユニットは特定のサービス、マウントポイント、デバイスなどを表します。最も一般的に扱うユニットタイプは `サービスユニット(.service)`、`ソケットユニット(.socket)`、`マウントユニット(.mount)`、`デバイスユニット(.device)`、`ターゲットユニット(.target)` などです。通常、`.service` 拡張子は省略して使用されます。
systemctl の主要役割
- サービス状態確認: 実行中のサービス、アクティブなサービス、失敗したサービスなどを把握します。
- サービス制御: サービスを開始、停止、再起動、リロード(設定を再読み込み)します。
- サービス自動実行設定: システム起動時にサービスが自動的に開始されるように設定または解除します。
- システム電源管理: システムを再起動、シャットダウン、スリープモードに切り替えます。
- ユニットファイル管理: ユニットファイルの位置、依存関係などを確認し、修正します。
主要 systemctl コマンドオプション
`systemctl` コマンドはサービス管理、システム電源制御、ユニットファイル管理など、さまざまな機能のために豊富なオプションを提供します。ほとんどのサービス関連のコマンドは `sudo` 権限が必要です。
1. サービス状態および制御
2. サービス自動実行設定
3. システム電源管理
4. ユニットファイルおよびリスト
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`systemctl` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
`systemctl` コマンドのさまざまな活用例を通じて systemd ベースのシステムでサービスを効果的に管理する方法を学びましょう。
ウェブサーバー (Nginx) サービス状態確認
systemctl status nginx.service
Nginx ウェブサーバーが現在実行中か、非アクティブか、エラーが発生しているかなどの詳細情報を確認します。
MySQL サービス開始
sudo systemctl start mysql.service
MySQL データベースサービスを開始します。
SSH サービス再起動
sudo systemctl restart sshd.service
SSH(Secure Shell) サービスを再起動します。設定ファイル変更後に適用する際に便利です。
Apache ウェブサーバー自動開始設定
sudo systemctl enable apache2.service
システム起動時に Apache ウェブサーバーが自動的に開始されるように設定します。
すべてのアクティブサービスリスト確認
systemctl list-units --type=service --state=active
現在のシステムで 'active' 状態(実行中または準備完了)のすべてのサービスユニットを列挙します。
systemd を通じたシステム再起動
sudo systemctl reboot
最も推奨される方法でシステムを安全に再起動します。
特定サービスユニットファイル内容表示
systemctl cat redis-server.service
Redis サービスの systemd ユニットファイル(例: `/etc/systemd/system/redis.service`)の内容を確認してサービスの動作方法を理解します。