Linux管理 systemctlやchkconfigでサービスの起動設定
スポンサーリンク
このドキュメントの内容は、以下の通りです。
- はじめに
- Linuxのシステム起動周りの仕組み
- SysVinitの仕組み
- sytemdの採用
- SysVinitとsystemdのコマンドの違い
- chkconfigとsytemctl について
- systemctl でサービス一覧を確認する
- systemctlで自動起動をオンにする
- systemctlで自動起動をオフにする
- systemctlで自動起動の設定を確認する
- chkconfig 実行例
- chkconfigで自動起動の設定を確認する
- chkconfigで自動起動をオンにする
- chkconfigで自動起動をオフにする
- まとめ
- サービスのコントロール
はじめに
Windows や Linux , FreeBSD などのオペレーティングシステムは、システムの起動時に、サービスを自動で起動する機能を持っています。サービスを自動起動することで、手動で起動する手間を省くことができます。また、起動し忘れることもありません。ソフトウェアは、バージョンがどんどん上がっていき、気づいたころには、知っているものがなくなっていることもしばしばあります。Linux で言えば、 chkconfigコマンドがない!みたいなことが起きたりしています。
Linuxのシステム起動周りの仕組み
Linux には、システム起動には以下の仕組みが使われています。
- SysVinit (SystemV init)
- Upstart
- systemd
SysVinitの仕組み
SysVinit を使用するシステムでは、 Linux カーネルがロードされたあとに、ブートプロセスの最終ステージで最初のプロセスとして init デーモンが実行されます。 init は mother of process などと言われる、すべてのプロセスの始祖的な存在です。一番最初に起動されるのでプロセスID(PID)が1です。
/etc/init/inittab を順次実行します。 inittab には、起動するプロセスが指定されています。ランレベル (runlevel) ごとに定義されています。
sytemdの採用
様々な Linux ディストリビューションが systemd を採用してきました。それぞれの Linux ディストリビューションで、デフォルトとしてリリースされたバージョンについて、いくつかリストアップしてみました。
Linuxディストリビューション | バージョン |
CoreOS | 94.0.0 |
CentOS | 7 |
Debian | 8 |
Fedora | 15 |
Red Hat Enterprise Linux | 7.0 |
Ubuntu | 15.04 |
SysVinitとsystemdのコマンドの違い
SysVinit 系と systemd 系では、利用するコマンドが異なります。 たとえば、centos 5 までは、SysVinit系、centos 6は Upstart, centos 7 は systemd 系となり、利用するコマンドが違います。
SysVinit と systemd のコマンドの違いについて、以下の表にまとめました。
項目 | SysVinit | systemd |
サービス一覧 | chkconfig --list | systemctl list-unit-files |
自動起動有効化 | chkconfig SCRIPT on | systemctl enable UNIT |
自動起動無効化 | chkconfig SCRIPT off | systemctl disable UNIT |
自動起動有効の確認 | systemctl is-enable UNIT | |
サービス起動 | service SCRIPT start | systemctl start UNIT |
サービス停止 | service SCRIPT stop | systemctl stop UNIT |
サービス再起動 | service SCRIPT restart | systemctl restart UNIT |
設定の再読み込み | service SCRIPT reload | systemctl reload UNIT |
サービスの状態確認 | service SCRIPT status | systemctl status UNIT |
SCRIPT には、サービス名を指定します。
UNIT には、ユニットを指定します。
chkconfigとsytemctl について
Linux で以前より利用されてきた chkconfig コマンドは、システムサービスのランレベルの情報の問い合せや更新を行えました。サービスの自動起動を有効にしたり、無効にしたり、といったことができます。CentOS 6 までは、chkconfigを利用してきましたが、 CentOS 7 からは systemctlコマンドに置き換えられました。
systemctl でサービス一覧を確認する
systemctl でサービスの一覧を確認してみましょう。328 unit もあって、非情に長いので、省略して掲載いたします。$ systemctl list-unit-files UNIT FILE STATE proc-sys-fs-binfmt_misc.automount static dev-hugepages.mount static dev-mqueue.mount static proc-fs-nfsd.mount static proc-sys-fs-binfmt_misc.mount static run-rpc_pipefs.mount static sys-fs-fuse-connections.mount static sys-kernel-config.mount static sys-kernel-debug.mount static acpid.path enabled apport-autoreport.path enabled ntp-systemd-netif.path enabled systemd-ask-password-console.path static systemd-ask-password-plymouth.path static systemd-ask-password-wall.path static accounts-daemon.service enabled acpid.service disabled apache-htcacheclean.service disabled apache-htcacheclean@.service disabled apache2.service enabled apache2@.service disabled 省略 328 unit files listed.
systemctlで自動起動をオンにする
apache2 の自動起動の設定を有効にします。コマンドの例を以下に示します。
sudo systemctl enable apache2
systemctlで自動起動をオフにする
apache2 の自動起動の設定を無効にします。コマンドの例を以下に示します。
sudo systemctl disable apache2
systemctlで自動起動の設定を確認する
sshd の自動起動の設定を確認します。コマンドの例を以下に示します。
systemctl is-enable sshd
実行例は以下の通りです。sshd は、自動起動が有効であることがわかります。
$ systemctl is-enabled sshd enabled
httpd は、自動起動が無効であることがわかります。
$ systemctl is-enabled httpd disabled
chkconfig 実行例
これは、chkconfig の実行例です。
インストールされているパッケージなどによって、この出力は異なります。
$ chkconfig NetworkManager 0:off 1:off 2:on 3:on 4:on 5:on 6:off acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off autofs 0:off 1:off 2:off 3:on 4:on 5:on 6:off avahi-daemon 0:off 1:off 2:off 3:on 4:on 5:on 6:off bluetooth 0:off 1:off 2:off 3:on 4:on 5:on 6:off cpuspeed 0:off 1:on 2:on 3:on 4:on 5:on 6:off crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off cups 0:off 1:off 2:on 3:on 4:on 5:on 6:off dnsmasq 0:off 1:off 2:off 3:off 4:off 5:off 6:off fcoe 0:off 1:off 2:on 3:on 4:on 5:on 6:off firstboot 0:off 1:off 2:off 3:off 4:off 5:off 6:off haldaemon 0:off 1:off 2:off 3:on 4:on 5:on 6:off httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off ip6tables 0:off 1:off 2:on 3:on 4:on 5:on 6:off iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off irqbalance 0:off 1:off 2:off 3:on 4:on 5:on 6:off iscsi 0:off 1:off 2:off 3:on 4:on 5:on 6:off iscsid 0:off 1:off 2:off 3:on 4:on 5:on 6:off kdump 0:off 1:off 2:off 3:on 4:on 5:on 6:off livesys 0:off 1:off 2:off 3:on 4:on 5:on 6:off livesys-late 0:off 1:off 2:off 3:on 4:on 5:on 6:off lldpad 0:off 1:off 2:on 3:on 4:on 5:on 6:off lvm2-monitor 0:off 1:on 2:on 3:on 4:on 5:on 6:off mdmonitor 0:off 1:off 2:on 3:on 4:on 5:on 6:off messagebus 0:off 1:off 2:on 3:on 4:on 5:on 6:off multipathd 0:off 1:off 2:off 3:off 4:off 5:off 6:off netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off netfs 0:off 1:off 2:off 3:on 4:on 5:on 6:off network 0:off 1:off 2:off 3:off 4:off 5:off 6:off nfs 0:off 1:off 2:off 3:off 4:off 5:off 6:off nfslock 0:off 1:off 2:off 3:on 4:on 5:on 6:off ntpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off ntpdate 0:off 1:off 2:off 3:off 4:off 5:off 6:off openct 0:off 1:off 2:on 3:on 4:on 5:on 6:off pcscd 0:off 1:off 2:on 3:on 4:on 5:on 6:off portreserve 0:off 1:off 2:on 3:on 4:on 5:on 6:off postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off psacct 0:off 1:off 2:off 3:off 4:off 5:off 6:off quota_nld 0:off 1:off 2:off 3:off 4:off 5:off 6:off rdisc 0:off 1:off 2:off 3:off 4:off 5:off 6:off restorecond 0:off 1:off 2:off 3:off 4:off 5:off 6:off rngd 0:off 1:off 2:off 3:off 4:off 5:off 6:off rpcbind 0:off 1:off 2:on 3:on 4:on 5:on 6:off rpcgssd 0:off 1:off 2:off 3:on 4:on 5:on 6:off rpcidmapd 0:off 1:off 2:off 3:on 4:on 5:on 6:off rpcsvcgssd 0:off 1:off 2:off 3:off 4:off 5:off 6:off rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off saslauthd 0:off 1:off 2:off 3:off 4:off 5:off 6:off smartd 0:off 1:off 2:off 3:off 4:off 5:off 6:off spice-vdagentd 0:off 1:off 2:off 3:off 4:off 5:on 6:off sshd 0:off 1:off 2:off 3:on 4:off 5:off 6:off sysstat 0:off 1:on 2:on 3:on 4:on 5:on 6:off udev-post 0:off 1:on 2:on 3:on 4:on 5:on 6:off vncserver 0:off 1:off 2:off 3:off 4:off 5:off 6:off wdaemon 0:off 1:off 2:off 3:off 4:off 5:off 6:off wpa_supplicant 0:off 1:off 2:off 3:off 4:off 5:off 6:off
chkconfigで自動起動の設定を確認する
httpd に絞って、chkconfigの出力を見てみましょう。
httpd は、自動起動がオフになっています。
$ chkconfig |fgrep httpd httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
chkconfigで自動起動をオンにする
httpd のサービスを自動起動する設定を有効にしてみます。
コマンドの例は、このようになります。
chkconfig サービス名前 on
$ chkconfig |fgrep httpd httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off $ sudo chkconfig httpd on [sudo] password for kaworu: $ chkconfig |fgrep httpd httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off $
chkconfigで自動起動をオフにする
httpd のサービスを自動起動する設定を無効にしてみます。
コマンドの例は、このようになります。
chkconfig サービス名前 off
実際にコマンドを実行してみます。
$ chkconfig |fgrep httpd httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off $ sudo chkconfig httpd off $ chkconfig |fgrep httpd httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
まとめ
chkconfigによって、自動起動されるサービスを調べることができます。不要なサービスは、停止してしまったほうが、システム全体のパフォーマンスを向上させることができます。不要なサービスの自動起動のオフ、サービス自体のオフをお勧めします。また、chkconfig をすでに利用していないOSもあります。その場合には、 systemcmd などをご利用ください。
サービスのコントロール
サービスの起動や停止には、 service コマンドを利用します。
[2012-10-20-1] Linux serviceコマンドでステータスを確認する方法
参照しているページ (サイト内): [2012-10-20-1]
スポンサーリンク
スポンサーリンク
いつもシェア、ありがとうございます!
もっと情報を探しませんか?
関連記事
最近の記事
- パナソニック ジェットウォッシャードルツ EW-DJ61-Wのホースの修理
- LinuxセキュリティモジュールIntegrity Policy Enforcement
- アマゾンのEcho Show 5を買ったのでレビューします
- アマゾンのサイバーマンデーはAlexa Echo Show 5が安い
- Android スマートフォン OnePlus 7T と OnePlus 7の違い
- Android スマートフォン OnePlus 7 をAndroid10にアップデートしてみた
- クレジットカードのバーチャルカードの比較のまとめ
- 活動量計 Xiaomi Mi Band 4を買ってみたのでレビュー
- Android スマートフォン OnePlus 7 のレビュー
- AliExpressでスマートフォンを買い物してみた
- パソコンのホコリ対策 レンジフードフィルターと養生テープ
- 80PLUS GOLDのPC電源ユニットAntec NeoEco 750 Goldのレビュー
- イギリスの付加価値税 VAT は払い戻しを受けられる
- イギリスのロンドンでスーツケースなど荷物を預けられる場所は
- イギリスのロンドンで地下鉄やバスに乗るならオイスターカードを使おう
- イギリスのヒースロー空港からロンドン市内への行き方
- 航空便でほかの航空会社に乗り継ぎがある場合のオンラインチェックイン
- SFC会員がANA便ではなくベトナム航空のコードシェアを試して解ったこと
- ベトナムの入国審査でeチケットの掲示が必要だった話
- シアトルの交通ICカードはオルカカード(Orca)です
人気のページ
- Windows7 IME 辞書ツールで単語の登録に失敗しました
- C言語 popen()でコマンドを実行して出力を読み込む
- Windows7で休止状態にする方法
- CentOS MySQLの起動、停止、再起動
- loggerコマンドでsyslogにエラーを出力する方法
- パソコンパーツの買取をしてくれる店のまとめ
- Java Mapの使い方 get(),put(),remove(),size(),clear()
- 楽天のRポイントカードを作ってみた
- iPhone 5 から iPhone 6 に乗り換えたのでレビュー
- netstatコマンドのステータスの意味
スポンサーリンク
過去ログ
2020 : 01 02 03 04 05 06 07 08 09 10 11 122019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12