SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

HRzine Day(エイチアールジン・デイ)は、人が活き会社が成長する人事のWebマガジン「HRzine」が主催するイベントです。毎回、人事の重要課題を1つテーマに設定し、識者やエキスパードが持つ知見・経験を、参加者のみなさんと共有しています。

直近開催のイベントはこちら!

HRzine Day 2024 Winter

2024年2月1日(木)12:00~17:40

主要製品スペック一覧

人事業務の効率・確度・精度を高めるために欠かせないHRテクノロジー。その主な製品の機能を分野ごとに比較できる資料群です。製品検討の参考資料としてご活用ください。

人事労務管理システム<br>主要製品スペック一覧 2023

人事労務管理システム
主要製品スペック一覧 2023

その他のスペック一覧

タレントマネジメントシステム<br>主要製品スペック一覧 2023

タレントマネジメントシステム
主要製品スペック一覧 2023

採用管理システム<br>主要製品スペック一覧 2023

採用管理システム
主要製品スペック一覧 2023

ドラゴン大竹のLPICレベル1 弱点克服クラス(Ver 4対応)| 第1回

【LPICレベル1】弱点「systemdによるサービスとターゲットの制御」を克服する


  • Facebook
  • Twitter
  • Pocket
  • note
  • hatena

 最近の主要なLinuxディストリビューションでは、従来使われてきたSysVinit(SystemV init) に代わり、「systemd」が採用されています。今回はSysVinitと対比しながら、systemdによるサービスとターゲットを制御する方法を解説します。 システム管理者にとってサービスの管理とSysVinitのランレベルに相当するターゲットの管理は必須の作業の1つですが、LPIC レベル1でもVer4.0の試験範囲として「主題101システムアーキテクチャ」の中の重要度3に指定された項目にsystemdによる「ブート手順」と「ブートターゲットの変更」が含まれており、試験対策としてしっかり理解しておかなければなりません。

  • Facebook
  • Twitter
  • Pocket
  • note
  • hatena

systemdとは

systemdは、LinuxなどのUNIX系OSで長く使用されてきたSysVinitに代わる仕組みで、ソケットとD-BUSを利用することにより並列処理の機能を強化し、依存関係を定義してサービスを管理します。systemdはLennart Poettering氏によって開発され、2010年にリリースされました。

最近の主要なディストリビューションでは、SysVinitあるいはUpstartに代わり、systemd が採用されています[1][2]

主要なディストリビューションのsystemd
ディストリビューション リリース日 systemdのバージョン
CentOS 7 2014年6月 208
SUSE Linux Enterprise Server 12 2014年10月 210
Fedora 21 2014年12月 217
Ubuntu 15.04 2015年4月 219

[1]: systemdはそのバージョンによってsystemctlのサブコマンドなど、提供する機能に若干の違いがあります。

[2]: FedoraではFedora15以降でsystemdを採用しています。

systemdの中核となるデーモン/usr/lib/systemd/systemdは、SysVinitの/sbin/initと同じくカーネルから起動される最初のユーザプロセスであり、PIDには1が割り当てられます。なお、/sbin/initは、/usr/lib/systemd/systemdへのシンボリックリンクとなっています。

実行例:CentOS 7でプロセスIDとリンクを確認
$ ps -e |head -2
  PID TTY          TIME CMD
    1 ?        00:00:40 systemd  ← systemdのPIDは1

$ ls -l /sbin/init  ← initはsystemdへのシンボリックリンク
lrwxrwxrwx. 1 root root 22  4月 17 13:55 /sbin/init -> ../lib/systemd/systemd

systemdはユニット(unit)によってシステムを管理します。ユニットにはmount、service、targetなど12のタイプがあります。

主なユニット
ユニット 説明
mount ハードウェア、ストレージデバイスのマウント
service サービス
target ターゲット。SysVinitのランレベルに相当

各ユニットは/usr/lib/systemdディレクトリと/etc/systemdディレクトリの下のファイルで管理されますが、ファイルを直接編集することなく、systemctlコマンドによって設定や表示などほとんどすべての管理ができます。

systemctlコマンドの構文
systemctl [ オプション ] サブコマンド [ unit名 ]
systemctlコマンドの主なオプション
主なオプション 説明
-a, –all ストップしているunitも含めてロード(load)されているunitをすべて表示する
-l, –full unit名などを省略しないで表示する
-t, –type= unitの一覧表示の場合、表示するunitのタイプを指定する【例:-t target, -t service】
–no-pager ページャを使用しない
systemctlコマンドのサブコマンド
主なサブコマンド 説明
start unitをスタートする
restart unitをリスタートする
stop unitをストップする
status unitの状態を表示する
enable unitをenableにする。これによりシステム起動時にunitは自動的にスタートする
disable unitをdisableにする。これによりシステム起動時にunitはスタートしない
isolate unitおよび依存するunitをスタートし、他のunitはすべてストップする。現在のtargetを変更する場合に使用する
list-units activeなunitをすべて表示表示する。このサブコマンドはデフォルト
list-unit-files インストールされているunitをすべて表示する
cat unit設定ファイルの内容を表示する(バージョン209から)。【実行例:systemctlcat sshd】

systemdによるサービスの管理

systemctlコマンドにより、サービスの起動、停止、再起動、状態の表示ができます。またシステム起動時のサービスの自動起動のオン/オフの切り替えができます。

systemdとSysVinitのサービスの管理(RedHat系の場合)
サービスの管理 systemd SysVinit
起動 systemctl start サービス名 service サービス名 start
停止 systemctl stop サービス名 service サービス名 stop
再起動 systemctl restart サービス名 service サービス名 restart
状態表示 systemctl status サービス名 service サービス名 status
自動起動オン systemctl enable サービス名 chkconfig サービス名 on
自動起動オフ systemctl disable サービス名 chkconfig サービス名 off
設定表示 systemctl status サービス名 chkconfig –list サービス名
実行例:httpd.serviceの状態表示、スタート、ストップ
# systemctl status httpd.service ← httpdサービスの状態を表示
httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled) ← disable になっている
   Active: inactive (dead) ← inactive (プロセスは起動していない)
......(以下省略)......

# systemctl start httpd.service ← httpdサービスをスタート
# systemctl status httpd.service
httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled) ← disable になっている
   Active: active (running) since 水 2015-04-22 19:35:27 JST; 4s ago ← active (プロセスは起動)
 Main PID: 30454 (httpd)
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           ├─30454 /usr/sbin/httpd -DFOREGROUND
           ├─30455 /usr/sbin/httpd -DFOREGROUND
           ├─30456 /usr/sbin/httpd -DFOREGROUND
           ├─30457 /usr/sbin/httpd -DFOREGROUND
           ├─30458 /usr/sbin/httpd -DFOREGROUND
           └─30459 /usr/sbin/httpd -DFOREGROUND
......(以下省略)......

# systemctl enable httpd.service ← enableに設定
ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service'

サービスを指定する場合には、サービス名.service.serviceを省略できます。例えば、上記のhttpd.serviceであれば、httpdと指定して実行することできます。

次のページ
systemdによるターゲットの管理

この記事は参考になりましたか?

  • Facebook
  • Twitter
  • Pocket
  • note
  • hatena
ドラゴン大竹のLPICレベル1 弱点克服クラス(Ver 4対応)連載記事一覧

もっと読む

この記事の著者

大竹 龍史(有限会社ナレッジデザイン)(オオタケ リュウシ)

有限会社ナレッジデザイン 代表取締役。1986年 伊藤忠データシステム(現・伊藤忠テクノソリューションズ(株))入社後、Sun Microsystems社のSunUNIX 3.x、SunOS 4.x、Solaris 2.xを皮切りにOSを中心としたサポートと社内トレーニングを担当。1998年 (有)ナレッジデザイン設立。Linux、Solarisの講師および、LPI対応コースの開発/実施。約27年にわたり、OS の中核部分のコンポーネントを中心に、UNIX/Solaris、Linuxなどオペレーティングシステ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事をシェア

  • Facebook
  • Twitter
  • Pocket
  • note
  • hatena
HRzine
https://hrzine.jp/article/detail/4 2016/10/04 13:53

Special Contents

AD

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

HRzine Day(エイチアールジン・デイ)は、人が活き会社が成長する人事のWebマガジン「HRzine」が主催するイベントです。毎回、人事の重要課題を1つテーマに設定し、識者やエキスパードが持つ知見・経験を、参加者のみなさんと共有しています。

2024年2月1日(木)12:00~17:40

イベントカレンダーを見る

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング