Ubuntu サーバー 20.04 にログイン前にデーモンを自動起動するコマンドを設定する方法

Ubuntu サーバー 20.04 にログイン前にデーモンを自動起動するコマンドを設定する方法

Ubuntu サーバー 20.04 には、次の場所に 2 つのプログラムがあります。

 /home/kiko/go-btfs/cmd/btfs
 /home/kiko/node5007/cmd/btfs

両方ともコマンドで実行されます:./btfs daemonこのコマンドを両方のディレクトリに対してサーバーへのログイン前に自動起動するようにするにはどうすればよいですか? 自動起動サービスを作成しsudo nano /etc/systemd/system/btfs_main.service、ユニットに次の設定を入れようとしましたbtfs_main.service:

[Unit]
Description=Starting_btfs_daemon

Wants=network.target
After=syslog.target network-online.target

[Service]
Type=simple
ExecStart=/home/kiko/go-btfs/cmd/btfs/./btfs daemon
ExecStart=/home/kiko/node5007/cmd/btfs/./btfs daemon
Restart=on-failure
RestartSec=10
KillMode=process

[Install]
WantedBy=multi-user.target

そして: sudo systemctl daemon-reload、、、。最後のコマンドでエラーが発生します: sudo systemctl enable btfs_main.service。両方のコマンドを自動的に実行するためのユニット設定を構成するにはどうすればよいですか?sudo systemctl start btfs_main.servicesystemctl status btfs_main.serviceUnit btfs_main.service has a bad unit file setting

答え1

サーバーの再起動後にスクリプトを開始するには、/etc/rc.local ファイルを使用できます。

したがって、実行する必要がある手順は次のとおりです。

  1. まず/etc/rc.localファイルを作成し、実行可能にします。これはchmod a+x /etc/rc.localコマンドで実行できます。
  2. 次に/etc/systemd/system/rc-local.serviceファイルを作成します。systemd サービス ファイルを作成したら、次の内容を追加します。
[Unit]
 Description=/etc/rc.local Compatibility
 ConditionPathExists=/etc/rc.local

[Service]
 Type=forking
 ExecStart=/etc/rc.local start
 TimeoutSec=0
 StandardOutput=tty
 RemainAfterExit=yes
 SysVStartPriority=99

[Install]
 WantedBy=multi-user.target
  1. その後、システム起動時にサービスを有効にします。

systemctl rc-local を有効にする

  1. 次に、サービスを開始してそのステータスを確認します。

systemctl rc-local.service を起動します

systemctl ステータス rc-local.service

下の画像のような出力が得られるはずです。 ここに画像の説明を入力してください

  1. 次に、スクリプトを/etc/rc.localファイルに入れて実行可能にします。
  2. サーバーを再起動して結果を確認します。

関連情報