2.5_起動時の自動起動設定
Video: https://www.bilibili.com/video/BV1rm4y1E73q/?p=15
Ubuntu システムに自動起動プログラムを追加する方法はいくつかありますが、本章では参考として 2 つの方法を紹介します。
自動起動 Service の設定
- 起動スクリプトを作成します
任意のテキストエディタで、/etc/init.dディレクトリに新しい起動スクリプトを作成します。ここではyour_script_nameという名前とし、以下はサンプルスクリプトの参考内容です:
#!/bin/bash
### BEGIN INIT INFO
# Provides: your_service_name
# Required-Start: $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start your_service_name at boot time
# Description: Enable service provided by your_service_name
### END INIT INFO
/path/to/your/program &
exit 0
- 起動スクリプトに実行権限を付与します
sudo chmod +x /etc/init.d/your_script_name
- update-rc.d コマンドでスクリプトをシステムの起動項目に追加します
sudo update-rc.d your_script_name defaults
- systemctl コマンドで自動起動を有効にします
sudo systemctl enable your_script_name
- 開発ボードを再起動し、自動起動サービスが正常に動作しているか確認します
root@ubuntu:~# systemctl status your_script_name.service
● your_script_name.service - LSB: Start your_service_name at boot time
Loaded: loaded (/etc/init.d/your_script_name; generated)
Active: active (exited) since Wed 2023-04-19 15:01:12 CST; 57s ago
Docs: man:systemd-sysv-generator(8)
Process: 2768 ExecStart=/etc/init.d/your_script_name start (code=exited, status=0/SUCCESS)
rc.local サービスへの追加
rc.local は、システム起動時にスクリプトやコマンドを自動実行するためのシステムサービスです。このサービスはシステム起動時に自動で呼び出され、起動完了後にユーザー指定のスクリプトやコマンドを実行するため、起動時にカスタム設定や操作を行うことができます。
初期の Linux ディストリビューションでは、rc.local はシステム起動処理でデフォルトで最後に実行されるサービスでした。systemd の普及に伴い、rc.local はレガシーなシステムサービスと見なされるようになっています。
sudo vim /etc/rc.localファイルの末尾に起動コマンドを追加することで実現します。例:
#!/bin/bash -e
#
# rc.local
#re
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# Insert what you need
exit 0
ドキュメント