rc.localのように最後に実行する

ALL
スポンサーリンク

Linux起動時に、指定のコマンドを実行するには、initを使用したサービス起動環境では rc.local に記述していました。
この rc.local は、/etc/init.d/ 下のサービス起動の後に実行されます。

しかし、systemd環境で rc.local 相当のサービスを起動しても、他のサービス起動と同時に実行されてしまい、最後に実行されるわけではありません。
一番最後に実行するには、次のようにします。

rc-local-latestサービスを作成します。

/lib/systemd/system/rc-local-latest.service

[Unit]
After=default.target

[Install]
WantedBy=default.target

[Service]
Type=forking
ExecStart=/etc/rc.local.latest

自動起動するようにします。

systemctl --system enable rc-local-latest

/etc/rc.local.latest ファイルを用意し、コマンドを記述します。
また、実行権限を付けます。

chmod +x /etc/rc.local.latest

これで、/etc/rc.local 同様、他のサービス起動の後に、実行します。

参考

OS起動時にsystemdで行われていること – Qiita
「Systemd」を理解する ーシステム起動編ー | ギークを目指して
arch linux – How to write a systemd .service file running systemd-tmpfiles – Unix & Linux Stack Exchange

コメント