1. rc-local.serviceを利用する
rc-local.serviceはシステムに付属する自動起動サービスですが、Ubuntu20のsystemd起動モードではデフォルトではこのサービスは有効になっていません。を有効にするには、簡単な構成が必要です。
パス /lib/systemd/system/rc-local.service にある rc-local.service のスクリプトは、rc.local の起動シーケンスと動作を指定します。
1 スタートアップサービスを確立する
sudo vim /lib/systemd/system/rc-local.service
ExecStart=/etc/rc.local start
このコード行では、起動時にこのサービスによって実行されるコマンドが /etc/rc.local start であることが規定されています。つまり、/etc/rc.local スクリプトを実行します。ただし、このスクリプトの内容には [Install] セクションが欠落していることがわかります。つまり、起動時にスクリプトを開始する方法が定義されていないため、現時点ではサービスが無効であることは明らかです。したがって、後で彼のために [Install] セクションを追加する必要があります。
2. rc-local.service ファイルを変更し、[Install] セクション
sudo chmod 777 /lib/systemd/system/rc-local.service を追加して変更権限を付与し、上記の [Install] ステートメントを追加します。
次のように入力します
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
3. 次に、起動時に rc-local.service サービスが開始されるように設定します。systemd
はデフォルトで /etc/systemd/system の下にある設定ファイルを読み取るため、/etc/systemd/system ディレクトリにソフト リンクを作成する必要もあります。
sudo systemctl enable rc-local.service
4. (プログラムの起動に重点を置きます) /etc/rc.local を作成します
Ubuntu 20.04 には、デフォルトでは /etc/rc.local がありません。touch /etc/rc.local を自分で作成する必要があります
注: 起動後にバックグラウンドでスクリプトを実行できるようにするには、sh スクリプトへの呼び出しの最後に & を追加する必要があります。そうしないと起動インターフェイスでスタックする可能性があります (これは私自身が実行しているプログラム スクリプトです)。
#!/bin/bash
cd /home/sne/wmrtc
nohup ./wmrtc &
exit 0
次に、次のコマンドを実行して、/etc/rc.local に実行権限を付与します。このステップは存在する必要があり、存在しない場合は効果がありません。
sudo chmod 777 /etc/rc.local
# または
sudo chmod +x /etc/rc.local
rc-local サービスのステータスを表示し、ロードされ有効になったことを示します。
sudo systemctl status rc-local.service