あいしんくいっとオススメ商品レビュー

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

本記事対象
CentOS7のrc.localが使えない時の対処法について知りたい方

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

LinuxOS起動時、手軽にサービスを自動起動させるのに便利なのが「rc.local」ファイルに書き込むという手段。
「自動起動させたいけど、「chkconfig」もしくは「/etc/init.d」に登録するまでもない」といったサービスはrc.localに1行書いておけば自動起動してくれました。

ithinkit

そう。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

RHEL8.2でrc.local動作確認

RHEL8.2(RedHatEnterpriseLinux release 8.2)でもrc.localが使えるか確認してみます。
/etc/rc.d/rc.localのシンボリックリンクという形で存在していました。

rc.local存在確認

[root@rhel82 rc.d]# ls -l /etc/rc.d/rc.local 
-rw-r--r--. 1 root root 489  1月 29 17:04 /etc/rc.d/rc.local

/etc/rc.d/rc.localに対して実行権限を付与することで動作することを確認。

rc.localに実行権限付与

[root@rhel82 rc.d]# chmod +x /etc/rc.d/rc.local
[root@rhel82 rc.d]# ls -l /etc/rc.d/rc.local 
-rwxr-xr-x. 1 root root 489  1月 29 17:04 /etc/rc.d/rc.local

CentOS7と同様、RHEL8系でも実行権限を付与することで、rc.localが機能することが確認出来ました。


「CentOS7からはrc.localに実行権限を与えなければならない」という事実を知らないとハマるのでぜひ覚えておきましょう。

ithinkit

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

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

コメントを残す

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

*

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