実行可能な形式で利用可能なサーバーを構築し、それを起動/停止/再起動できるサービスとして登録したいと思います。
私は次の質問を読んで、他の多くの人もそれを愛していました。>実行可能ファイルをサービスとして実行するには?
私の問題はsudo systemctl stop myexecutableservice
。
現在の状況では、サービスを停止してもバックグラウンドプロセスは引き続き実行され、サーバーは依然として要求を受け入れます。
答え1
これは最も単純なケースに対する答えです。
あなたがしなければならない/etc/systemd/system/myservice.service
のは、セクションを含むINIファイルを作成することだけです[Service]
。
非常に簡単なサービスは次のとおりです。
[Service]
ExecStart=/usr/bin/myapp arg1 arg2
サービスが存在することを確認してから、sudo systemctl start myservice
またはsudo systemctl stop myservice
。
Service
このセクションでは、カスタマイズ、作業ディレクトリ、環境変数、フォークされたプロセス管理方法、プロセス停止方法、優先順位など、他の多くのタスクも実行できます。より systemd.service(5)
このセクションの仕組みの詳細。
ログに表示するセクションを[Unit]
定義し、他のデバイスとの関係を定義するセクションを追加することもできます。Description=
バラより systemd.unit(5)
。
[Install]
セクションを宣言することも可能です。これにより、何が起こるかを定義できますsystemctl enable myservice
。バラより systemd.unit(5)
。
答え2
私の実行可能ファイルはすべての終了イベントで終了していない別のプロセスを開始したので、新しい.serviceファイルを作成して実行可能ファイルに再コンパイルしました。今はうまくいきます。