systemdの下で自動起動する場合の特徴
・Root権限で実行される。
・起動のタイミングを選択できる。
・Root権限で実行される。
・起動のタイミングを選択できる。
以下、設定方法
自動起動の設定ファイルをauto.service とする
以下のファイルを作成する
/etc/systemd/system/auto.service
内容 ------------------------------
[Unit]
Description=Auto Boot Script
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=root
ExecStart=/home/(ユーザー名)/auto.boot
WorkingDirectory=/home/(ユーザー名)
Restart=no
[Install]
WantedBy=multi-user.target
内容ここまで --------------------------
上記例は
ネットワークが使えるようになったら起動
起動は一度だけ(指定ソフトが終了してもリブートしない)
起動するのは/home/(ユーザー名)/auto.boot
起動時の作業ホルダは/home/(ユーザー名)
という設定内容。
有効化と起動は以下コマンドを発行
sudo systemctl daemon-reload
sudo systemctl enable auto.service
sudo systemctl start auto.service
ログ確認には以下コマンドを発行
journalctl -u auto.service
auto.boot はスクリプトファイルとしておけば
そのスクリプトファイルの中のアプリをコメントアウトすれば自動起動を暫定停止できる。
auto.boot でタイムサーバー(192.168.0.200)に自動同期させる例
ここから------------------------------
#!/bin/bash
DIRS=/home/(ユーザー名)
DDD=$(date "+%Y%m%d_%H%M%S")
STDOUT="${DIRS}/${DDD}_ntp.txt"
echo "Sync Time Server" >> "$STDOUT"
ntpdate -u -b 192.168.0.200 >> "$STDOUT" 2>&1
ここまで ------------------------------
2025.07.03 追記 --------
自動起動の設定ファイルをauto.service とする
以下のファイルを作成する
/etc/systemd/system/auto.service
内容 ------------------------------
[Unit]
Description=Auto Boot Script
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=root
ExecStart=/home/(ユーザー名)/auto.boot
WorkingDirectory=/home/(ユーザー名)
Restart=no
[Install]
WantedBy=multi-user.target
内容ここまで --------------------------
上記例は
ネットワークが使えるようになったら起動
起動は一度だけ(指定ソフトが終了してもリブートしない)
起動するのは/home/(ユーザー名)/auto.boot
起動時の作業ホルダは/home/(ユーザー名)
という設定内容。
有効化と起動は以下コマンドを発行
sudo systemctl daemon-reload
sudo systemctl enable auto.service
sudo systemctl start auto.service
ログ確認には以下コマンドを発行
journalctl -u auto.service
auto.boot はスクリプトファイルとしておけば
そのスクリプトファイルの中のアプリをコメントアウトすれば自動起動を暫定停止できる。
auto.boot でタイムサーバー(192.168.0.200)に自動同期させる例
ここから------------------------------
#!/bin/bash
DIRS=/home/(ユーザー名)
DDD=$(date "+%Y%m%d_%H%M%S")
STDOUT="${DIRS}/${DDD}_ntp.txt"
echo "Sync Time Server" >> "$STDOUT"
ntpdate -u -b 192.168.0.200 >> "$STDOUT" 2>&1
ここまで ------------------------------
2025.07.03 追記 --------
他サービスが自PCのポート123を保持してエラー(tpdate[20963]: the NTP socket is in use, exiting)となることがある。この対策として、ntpdate のオプションに -u を追加した。
2025.07.15 追記 --------
おっとどっこい、タイムサーバーに同期させるにはAfter=network-online.targetとしただけではだめでした。
(別記事にします)
(別記事にします)