バージョン 7 で導入された CentOS の大きな変更点の 1 つは、/etc/rc.d/rc.local ファイルから起動するカスタム スクリプトのネイティブ実行の欠如でした。
/etc/rc.d/rc.local は、古い CentOS 5 および CentOS 6 バージョンですべての init.d スクリプトが開始された後に、カスタム スクリプトを追加して自動的に起動する最も古典的な方法の 1 つです。
ただし、新しい CentOS 7.x では、新しいサービス管理システムによるサービスの処理方法など、多くのことが変更されました。
CentOS 7 では、systemd が採用されているため、そのファイルはデフォルトで実行されなくなりました(以前の CentOS バージョンで発生していたように)。
CentOS 7 で起動時にスクリプトを自動的に実行する方法
rc.local ファイル (/etc/rc.d/rc.local) からスクリプトを自動的に実行するには、そのファイルに実行権限を適用する必要があります
このコマンドを root として実行して、実行可能にしましょう:
chmod +x /etc/rc.d/rc.local
うまくいかない場合は試してみてください
chmod u+x /etc/rc.d/rc.local
この chmod コマンドは、Systemd サービスに依存する新しい rc-local をアクティブ化します。
完了したら、/etc/rc.d/rc.local ファイルへのシンボリック リンクである /etc/rc.local を編集することで、スクリプトを自動的に実行できます。
スクリプトをそのファイルの末尾に追加するだけです。これですべてです。この時点で、CentOS 7 の起動時にスクリプトを自動的に実行する必要があります。
CentOS 7 での起動後にスクリプトが自動的に実行されることをテストするにはどうすればよいですか?
簡単。以下を実行して rc-local サービスをテストします:
systemctl start rc-local
テストする他の方法は、サーバーを再起動することです:
shutdow now -rf
さらに読む:
- CentOS 7 リリース ノート