[最終更新] 2016年12月13日
Ubuntu Magazineの記事を参考に、まがりなりにも自分でサーバーを構築してから早半年。といってもファイルサーバーとDLNAのメディアサーバーくらいの機能しかないわけですが、それでもかつてに比べると少しは成長したなぁと思います。
さて、そんな初心者Linuxサーバー管理者が日々ちょくちょく疑問に思っていたこと。それは /etc/init.d/なんとか と serviceコマンドを使うのは何が違うのかということ。調べていると、sshサーバー一つ立ち上げるのも、/etc/init.d/sshと書いてあったり、service sshと書いてあったりするわけですが、これって何が違うんだろう?という。さらに考えてみると、/etc/init.dじゃなくて/etc/initなのもあるよな、何が違うんだろ…とかも思ったり。
まぁ、/etc/initと/etc/init.dがあるのは歴史的経緯で深い意味はないんじゃね、んで/etc/init.d/sshって入力するの面倒くさいからserviceコマンドがあるんじゃね、くらいの認識でした。が、Ubuntu Server 実践バイブルなる本によると、別の説明がありました。
initデーモンの違いを吸収する
まずLinuxにおいて最初に立ち上がるのがinitデーモンです。で、このinitデーモンには昔ながらの SysV init というものと、比較的新しい Upstart ってのがあるらしいです。Ubuntuで使われているのはUpstartのほうなのですが、サーバーのソフトウェアにはSys Vのスクリプトしかなかったりします。なので、UpstartにはSys Vベースのinitスクリプトを解釈する互換機能もあるようなのです。
深いことはよくわかりませんが、要はSys V互換のためのサービス定義と、Upstartベースのサービス定義の二種類があるということです。で、/etc/init/*にあるものはUpstartのサービス定義ファイルで、/etc/init.d/*にあるのはSys V互換のサービス定義ファイル、ということだそうです。
あー、それで/etc/initだったり/etc/init.dだったりするのね、と理解。serviceコマンドがあれば、何がinitで何がinit.dだったかとか考えなくて済むということになります。Upstartへの置き換え作業も逐次進んでいるようですし、事情を考えるとUbuntuではserviceコマンドを使うのがよいわけですね。また、違いもわかり今後は各所の記述の違いでもやもやすることもなくなりました。なるほどなるほど。
ところでUbuntu Server 実践バイブルですが、これ非常によい本で、買ったことは満足しています。が、しかし!最近、達人出版界でpdf版が発売されたんです(Ubuntu Server 実践バイブル 現場で即運用に役立つサービス設定のノウハウ【委託】 – 達人出版会)。紙で欲しいという人は多いでしょうが、私は電子版のほうが欲しかった!しかも電子版のほうが安いし!こうと知っていたら電子版が出るまで待ったのになぁ!
関連記事
Linux の記事
- [2016年7月31日] 不正アクセス(SSH)の試行を遮断(CentOS 7, ConoHa)
- [2016年7月21日] nginxの設定ファイル nginx.conf の読み方 超入門
- [2015年8月31日] Ubuntu 15.04 で2TB超え(3TB)のHDをマウントする(CUI)
- [2013年5月26日] MiniDLNAをufwで許可する(Ubuntu Server 12.04)
- [2013年4月22日] USB温度センサーで室温をモニタリングしてみた(on Ubuntu Server 12.04)
- ---本記事---
- [2013年4月1日] Ubuntu Server 12.04のCUIで2TB超え(3TB)の外付けハードディスクを使う
- [2012年11月23日] SSHで鍵認証を用いて、パスワードなしでログインする方法
- [2012年11月13日] 小型のメディアサーバー兼NASをたてる その5 〜メディアサーバー(DLNA)編〜
- [2012年11月9日] 小型のメディアサーバー兼NASをたてる その4 〜ファイルサーバー(Samba)編〜
- [2012年10月31日] Ace PlayerでDLNAサーバー(MiniDLNA)上のフォルダが更新されないときのメモ
スポンサーリンク