盆暗の学習記録

データサイエンス ,エンジニアリング,ビジネスについて日々学んだことの備忘録としていく予定です。初心者であり独学なので内容には誤りが含まれる可能性が大いにあります。

Linux OSの起動時にプログラムを自動実行する

最近よく使うので簡単にメモします。

私の環境

Ubuntu 20.04(WSL)

手順

/etcrc.local というファイルを作成する

sudo vim /etc/rc.local

rc.local の中身はシェルスクリプトで、ここに実行したいプログラムを書く。 (shebangも書かないとうまくいかないらしい)

#!/bin/bash

# 例: docker-composeの起動
cd /my/work/dir
sudo docker compose up -d

rc.local はrootにのみ全権限を付与

sudo chmod 700 /etc/rc.local

systemdへの登録

sudo systemctl start rc-local

その後

sudo systemctl status rc-local

でactiveになっていたら設定完了

WSLの場合

WSLの場合、ここで

System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down

というエラーがでることがあります。

この場合は、/etc/wsl.conf

[boot]
systemd=true

と書いてwslを再起動すればsystemdが動くようになるみたいです。

参考サイト