CentOS7のrc.localが使えない時の対処法について

ども。あいしんくいっと(@ithinkitnet)です。

OS起動時、手軽にサービスを自動起動させるのに便利なのが、rc.localファイルに書き込むという手段。
「自動起動させたいけど、chkconfigもしくは systemd に登録するまでもない」といったサービスはrc.localに1行書いておけば自動起動してくれてました。
そう。CentOS6まではね・・・。
ですが、CentOS7ではひと手間加える必要があります。
それは・・・。

CentOS7だとrc.localに書くだけではダメ!

CentOS7でいつものようにrc.localに記載して「よし!これでサービス自動起動するだろう」と思っていたのですが、なぜか自動起動せず。
なんでだろう?って調べてみたところ、CentOS7からサービス管理方式がinitdからsystemdに変更された影響により、普通にrc.localに記載しただけでは実行されないことが判明。

引用元: CentOS7でrc.localが実行されない問題

確認してみると、やはりrc.localに実行権限がない模様。

# ls -l /etc/rc.d/rc.local
-rw-r--r--. 1 root root 648  2月 23 18:00 /etc/rc.d/rc.local

ちなみに過去のRHEL/Centps系のrc.localはと言うと、

RHEL 5.8)

[root@rhel5 ~]#  ll /etc/rc.d/rc.local
-rwxr-xr-x 1 root root 281  1月  6  2012 /etc/rc.d/rc.local
[root@rhel5 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.8 (Tikanga)

RHEL 7.2)

# ll /etc/rc.d/rc.local
-rw-r--r--. 1 root root 534  1月 19 17:56 /etc/rc.d/rc.local
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.2 (Maipo)

CentOS6)

[root@cent6 ~]# ll /etc/rc.d/rc.local
-rwxr-xr-x 1 root root 220  2月 25 01:05 2017 /etc/rc.d/rc.local
[root@cent6 ~]# cat /etc/redhat-release
CentOS release 6.8 (Final)

CentOS7)

[root@cent7 ~]# ll /etc/rc.d/rc.local
-rw-r--r--. 1 root root 473  9月 15  2016 /etc/rc.d/rc.local
[root@cent7 ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)

手元にあるOSで確認してみましたが、どうやらCentOS7、RHEL7からrc.localの実行権限がなくなった模様。

rc.localに実行権限を付与

対応としてrc.localに実行権限を付与すると、これまで通りサービス自動起動が実現出来ました!
・実行権限付与

# chmod u+x /etc/rc.d/rc.local
# ls -l /etc/rc.d/rc.local
-rwxr--r--. 1 root root 648  2月 21 15:31 /etc/rc.d/rc.local

知らないとハマるのでぜひ覚えておきましょう。

ithinkit

Cent/RHEL7系から色々と変わってて大変ですね・・・。
まぁ、覚えるしかないんですけど。

以上、あいしんくいっとでした( ..)φメモメモ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)