スポンサーリンク

このドキュメントの内容は、以下の通りです。

はじめに

Windows や Linux , FreeBSD などのオペレーティングシステムは、システムの起動時に、サービスを自動で起動する機能を持っています。サービスを自動起動することで、手動で起動する手間を省くことができます。また、起動し忘れることもありません。

ソフトウェアは、バージョンがどんどん上がっていき、気づいたころには、知っているものがなくなっていることもしばしばあります。Linux で言えば、 chkconfigコマンドがない!みたいなことが起きたりしています。

Linuxのシステム起動周りの仕組み


Linux には、システム起動には以下の仕組みが使われています。
  • SysVinit (SystemV init)
  • Upstart
  • systemd
以前はLinux などの Unix 系 OS で SysVinit 系が使われてきましたが、 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]

スポンサーリンク
スポンサーリンク
 
いつもシェア、ありがとうございます!


もっと情報を探しませんか?

関連記事

最近の記事

人気のページ

スポンサーリンク
 

過去ログ

2020 : 01 02 03 04 05 06 07 08 09 10 11 12
2019 : 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

サイト

Vim入門

C言語入門

C++入門

JavaScript/Node.js入門

Python入門

FreeBSD入門

Ubuntu入門

セキュリティ入門

パソコン自作入門

ブログ

トップ


プライバシーポリシー