問題
構成ファイル /etc/rc.d/rc.local のスクリプト/コマンド CentOS/RHEL 7 システムでは起動時に機能しませんでした。以前の CentOS/RHEL バージョンで動作していたものと同じです。廃止されましたか、それともこのメソッドを引き続き使用するための回避策はありますか?
答え
rc.local このサービスは、CentOS/RHEL 7 ではデフォルトで停止しています。etc/rc.d/rc.local 構成ファイルを確認すると、これに関するヒントがあります。
# cat /etc/rc.d/rc.local #!/bin/bash # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES # # It is highly advisable to create own systemd services or udev rules # to run scripts during boot instead of using this file. # # In contrast to previous versions due to parallel execution during boot # this script will NOT be run after all other services. # # Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure # that this script will be executed during boot. touch /var/lock/subsys/local
回避策
1. systemd を使用 、initスクリプトはもうありません。その結果、起動時のタスクの実行を変更する必要がありました。 CentOS/RHEL 7 では、/etc/rc.d/rc.local ファイルは rc-local サービスによって制御されます。
... [Unit] Description=/etc/rc.d/rc.local Compatibility ConditionFileIsExecutable=/etc/rc.d/rc.local After=network.target [Service] Type=forking ExecStart=/etc/rc.d/rc.local start TimeoutSec=0 RemainAfterExit=yes
2. デフォルトでは、ファイル /etc/rc.d/rc.local には実行権限がありません。このファイルに実行権限を追加してください。
# ls -l /etc/rc.d/rc.local -rw-r--r--. 1 root root 473 Nov 8 00:20 /etc/rc.d/rc.local
# chmod +x /etc/rc.d/rc.local
# ls -l /etc/rc.d/rc.local -rwxr-xr-x. 1 root root 473 Nov 8 00:20 /etc/rc.d/rc.local
3. rc.local サービスを有効にして、再起動後に毎回開始されるようにします。
# systemctl enable rc-local
サービスが有効になっているかどうかを確認します:
# systemctl status rc-local.service
3. 次に、rc-local を起動してください サービス。
# systemctl start rc-local