systemd
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| systemd [2018/07/08 12:06] – [デーモン化] nullpon | systemd [2023/03/16 18:01] (現在) – nullpon | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | ====== | + | < |
| + | # Systemd | ||
| - | SysVinitやupstartに代わるLinuxの起動処理の仕組み。2018年現在のLinuxディストリビューションはほぼ全てSystemdを採用している | + | Linuxのシステム管理、起動処理を行う仕組み。SysVinitやupstartなどの起動処理の代替だけではなく、cronなどの処理も置き換えている。2018年現在のLinuxディストリビューションはほぼ全てSystemdを採用している |
| - | < | + | ## コマンド |
| - | # コマンド | + | |
| サービス(旧来のデーモンに当たる常駐プロセス)の一覧 | サービス(旧来のデーモンに当たる常駐プロセス)の一覧 | ||
| $ systemctl list-unit-files --type service | $ systemctl list-unit-files --type service | ||
| + | | ||
| + | 有効なサービスの一覧を見る | ||
| + | |||
| + | $ systemctl list-unit --type service | ||
| | | ||
| サービスの状態を確認 | サービスの状態を確認 | ||
| 行 18: | 行 22: | ||
| $ systemctl start nginx.service | $ systemctl start nginx.service | ||
| $ systemctl stop nginx.service | $ systemctl stop nginx.service | ||
| + | |||
| + | 自動起動を有効化する(普通は有効化されているが何らかの原因でdisabledになってしまった場合の修正) | ||
| + | |||
| + | $ systemctl enable nginx.service | ||
| | | ||
| 一部のサービスにはreload(再起動せずconfigファイルの読み直し)もある。いい感じのbashでは補完機能でreload可能なサービスのみリストアップされる、ただし少し重い。 | 一部のサービスにはreload(再起動せずconfigファイルの読み直し)もある。いい感じのbashでは補完機能でreload可能なサービスのみリストアップされる、ただし少し重い。 | ||
| $ systemctl reload nginx.service | $ systemctl reload nginx.service | ||
| + | | ||
| + | | ||
| + | ## systemd-resolved | ||
| + | |||
| + | systemdで提供されるDNSクライアント。詳細は以下のコマンドで確認できる | ||
| + | |||
| + | $ systemd-resolve --status | ||
| + | |||
| + | systemd-resolvedは名前解決用のサーバを立ち上げている。/ | ||
| + | |||
| + | ``` | ||
| + | nameserver 127.0.0.53 | ||
| + | options edns0 trust-ad | ||
| + | search localdomain | ||
| + | ``` | ||
| + | |||
| + | のようになっている。systemdで管理されているLinuxサーバ上で各アプリケーションは127.0.0.53をネームサーバとして利用できる。 | ||
| + | |||
| + | 実際に使用される外部ネームサーバは`/ | ||
| + | |||
| + | ## systemd-timesyncd | ||
| + | |||
| + | 時刻合わせもsystemdの管理下になり、従来のntpからsystemd-timesyncdに変わっている | ||
| + | |||
| + | $ systemctl status systemd-timesyncd | ||
| + | |||
| + | なお、時刻やタイムゾーンの設定はtimedatectlというコマンドで行う | ||
| + | |||
| + | $ sudo timedatectl set-timezone Asia/Tokyo | ||
| + | | ||
| + | 現在のTimeZone設定もtimedatectlで確認できる | ||
| + | |||
| + | ``` | ||
| + | $ timedatectl | ||
| + | Local time: 土 2023-01-28 01:44:40 JST | ||
| + | | ||
| + | RTC time: 金 2023-01-27 16:44:40 | ||
| + | Time zone: Asia/Tokyo (JST, +0900) | ||
| + | System clock synchronized: | ||
| + | NTP service: active | ||
| + | RTC in local TZ: no | ||
| + | ``` | ||
| + | |||
| + | NTPサーバの指定などは以下のファイルにある | ||
| + | |||
| + | $ less / | ||
| + | | ||
| + | すぐに時刻合わせをしたい場合はrestartすると良い | ||
| + | |||
| + | $ sudo systemctl restart systemd-timesyncd | ||
| + | | ||
| + | ## timer | ||
| + | |||
| + | 定期実行ジョブを作成できる。cronのようなもの | ||
| + | |||
| + | 設定されているタイマーを確認 | ||
| + | |||
| + | ``` | ||
| + | systemctl list-timers | ||
| + | ``` | ||
| + | |||
| + | ### timerを自作する | ||
| + | |||
| + | 例)mysqlバックアップジョブを作る | ||
| + | |||
| + | / | ||
| + | |||
| + | ``` | ||
| + | [Unit] | ||
| + | Description=backup mysql | ||
| + | Wants=mysql.service | ||
| + | |||
| + | [Service] | ||
| + | Type=oneshot | ||
| + | ExecStart=/ | ||
| + | |||
| + | [Install] | ||
| + | WantedBy=multi-user.target | ||
| + | ``` | ||
| + | |||
| + | これを有効にする | ||
| + | |||
| + | ``` | ||
| + | sudo systemctl enable backup-mysql.service | ||
| + | ``` | ||
| + | |||
| + | / | ||
| + | |||
| + | ``` | ||
| + | [Unit] | ||
| + | Description=backup mysql timer | ||
| + | |||
| + | [Timer] | ||
| + | OnCalendar=*-*-* 03:00:00 | ||
| + | Persistent=true | ||
| + | Unit=backup-mysql.service | ||
| + | |||
| + | [Install] | ||
| + | WantedBy=timers.target | ||
| + | ``` | ||
| + | |||
| + | これを有効にして、タイマーを開始する | ||
| + | |||
| + | ``` | ||
| + | sudo systemctl enable backup-mysql.timer | ||
| + | sudo systemctl start backup-mysql.timer | ||
| + | ``` | ||
| + | |||
| + | バックアップスクリプトはいい感じに作る | ||
| + | |||
| </ | </ | ||
| + | |||
| + | <file bash / | ||
| + | #!/bin/bash -e | ||
| + | |||
| + | cd / | ||
| + | |||
| + | mysqldump --defaults-extra-file=/ | ||
| + | |||
| + | gzip mysql_hoge_buckup.sql | ||
| + | |||
| + | mv mysql_hoge_buckup.sql.gz " | ||
| + | |||
| + | find . -name " | ||
| + | </ | ||
| + | |||
| + | 単にバックアップ目的なら cron.daily に上記のスクリプトを設置する方が楽 | ||
| + | |||
systemd.1531051588.txt.gz · 最終更新: by nullpon