| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
140 バイト追加 、 2020年2月16日 (日) 04:33
編集の要約なし
==[[Systemd]]==
[[Linux]] |
*https://fedoraproject.org/wiki/[[Systemd]]
*http://d.hatena.ne.jp/enakai00/20130914/1379146157
*http://alpha.mixi.co.jp/2013/12063/
<blockquote>Linuxの起動処理は、これまでinit[[Linux]]の起動処理は、これまでinit/upstartと呼ばれる仕組みで行われていました。Red Hat Enterprise [[Linux ]] 7 (RHEL7)では、これが、systemdと呼ばれるまったく新しい仕組みに置き換わります。</blockquote>
===Unit===
*systemdでは、「Unit」という単位で処理を管理
*rc.sysinitやサービス起動スクリプトが実施していた処理の内容は、すべて、Unitとして定義
*Unitは、「target」「mount」「service」「device」など、役割によってタイプがわかれているUnitは、「target」「mount」「ser[[vi]]ce」「de[[vi]]ce」など、役割によってタイプがわかれている**設定ファイル名の末尾「.target」「.service」で判別ができますser[[vi]]ce」で判別ができます
*Unitの定義ファイルは /usr/lib/systemd/system/ ディレクトリ配下にあります。
|オートマウント処理を実施する(automountdの代替的な機能)
|-
|serviceser[[vi]]ce
|指定のバイナリを実行する(主にはデーモンの起動に使用する)
|-
|指定のファイルが作成されると、指定されたサービスを起動する
|-
|devicede[[vi]]ce
|udevから通知されたデバイスを表す
|-
=====稼働サービスの一覧=====
# systemctl list-units --type=serviceser[[vi]]ce
===on/offの設定===
*chkconfigによるon[[chkconfig]]によるon/offに対応
=====on=====
# systemctl enable docker.serviceser[[vi]]ce
=====off=====
# systemctl disable docker.serviceser[[vi]]ce
===ターゲットの設定===
*/usr/lib/systemd/system/ 配下の設定ファイルを確認
<blockquote>、runlevel 5に相当する「graphical.target」に対しては、「multi-user.target」が前提として定義されていますので、multi-user.targetで有効化されたserviceは、自動的にgraphicaltargetで有効化されたser[[vi]]ceは、自動的にgraphical.targetでも有効化されます</blockquote>
=====例=====
*runlevel 5だけで有効化したい → WantedByにgraphical.targetを指定
# cat /usr/lib/systemd/system/docker.service ser[[vi]]ce
[Unit]
Description=[[Docker ]] Application Container Engine
Documentation=http://docs.docker.io
After=network.target
Requires[[R]]equires=docker.socket
[Service]
Type=notify
EnvironmentFileEn[[vi]]ronmentFile=-/etc/sysconfig/docker
ExecStart=/usr/bin/docker -d --selinux-enabled -H fd://
Restart[[R]]estart=on-failure
LimitNOFILE=1048576
LimitNPROCLimitNP[[R]]OC=1048576
[Install]
===サービスの確認===
# systemctl status docker.serviceser[[vi]]ce docker.service - [[Docker ]] Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.serviceser[[vi]]ce; enabled)
Active: active (running) since 日 2014-07-13 23:04:55 JST; 30min ago
Docs: http://docs.docker.io
Main PID: 3072 (docker)
CGroup: /system.slice/docker.serviceser[[vi]]ce
└─3072 /usr/bin/docker -d --selinux-enabled -H fd://
===再起動===
# systemctl restart docker.serviceser[[vi]]ce
===設定の再読み込み===
# systemctl reload [サービス]
<blockquote>該当のserviceがreloadオプションに対応している必要あり該当のser[[vi]]ceがreloadオプションに対応している必要あり</blockquote>
=====例=====
*start/reloadの際に実行されるコマンドが指定されています(「ExecStart=」、および「ExecReload」、および「Exec[[R]]eload=」オプション)
[Service]
EnvironmentFileEn[[vi]]ronmentFile=/etc/sysconfig/sshd
ExecStartPre=/usr/sbin/sshd-keygen
ExecStart=/usr/sbin/sshd -D $OPTIONS
ExecReloadExec[[R]]eload=/bin/kill -HUP $MAINPID
===[[chkconfig]]/serviceコマンドとの共存===/etc/init.d/以下に旧来のサービススクリプトがある場合、そちらをchkconfig以下に旧来のサービススクリプトがある場合、そちらを[[chkconfig]]/serviceコマンドで操作することも可能です。CentOS7では、次のサービスはsystemdに移行せずに残っています。
# [[chkconfig ]] --list
注記: この出力は SysV サービスのみであり、ネイティブな systemd のサービスは含まれていません。
systemd servicesser[[vi]]ces. SysV 設定のデータはネイティブな systemd の設定によって上書きされます。
systemd サービスを一覧表示するには 'systemctl list-unit-files' を使用してください。
特定のターゲットにおいて有効化されているサービスを確認するには、
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
<blockquote>/etc/init.d/以下にスクリプトがないサービスに対して、chkconfig以下にスクリプトがないサービスに対して、[[chkconfig]]/serviceコマンドを実行した場合は、自動的に対応するsystemctlコマンドが発行されます。</blockquote>
===各フェーズにおける起動時間===
===仮想環境種類の判別===
# systemd-detect-virt[[vi]]rt
microsoft

案内メニュー