
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.service
systemctl status btfs_main.service
Unit btfs_main.service has a bad unit file setting
答え1
サーバーの再起動後にスクリプトを開始するには、/etc/rc.local ファイルを使用できます。
したがって、実行する必要がある手順は次のとおりです。
- まず
/etc/rc.local
ファイルを作成し、実行可能にします。これはchmod a+x /etc/rc.local
コマンドで実行できます。 - 次に
/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
- その後、システム起動時にサービスを有効にします。
systemctl rc-local を有効にする
- 次に、サービスを開始してそのステータスを確認します。
systemctl rc-local.service を起動します
systemctl ステータス rc-local.service
- 次に、スクリプトを
/etc/rc.local
ファイルに入れて実行可能にします。 - サーバーを再起動して結果を確認します。