Debian: systemd スクリプトを使用して Xvfb を起動し、バックグラウンドで送信します。

Debian: systemd スクリプトを使用して Xvfb を起動し、バックグラウンドで送信します。

バックグラウンドでXvfbを起動するシステムスクリプトを作成しようとしています。

もちろん、コンソールでこれを行うときに「&」を追加することに問題はありません。

しかし、システムスクリプトを作成しようとしたときに手動で起動すると、

service xvfb start

このコマンドを実行した後にプロンプ​​トが表示されないため、決してバックグラウンドで送信されないようです。

スクリプトは次のとおりです。

[Unit]
Description=Xvfb
After=tomcat.service

[Timer]
# Time to wait after booting before we run first time
OnBootSec=1min

[Service]
Type=forking
User=test
Group=test

ExecStart=/usr/bin/Xvfb :99
ExecStop=/bin/kill -15 $MAINPID

[Install]
WantedBy=multi-user.target

他のタイプを使用する必要がありますか?

答え1

Type=forking

独自に分岐され、バックグラウンドで実行されるプロセス(レガシーデーモンとも呼ばれる)に適しています。これはsystemdを引き起こします。待つプロセスをバックグラウンドで終了させ、pidファイルまたは他の手段を介して子プロセスを追跡します。アプリケーションが終了しないため、systemdは待機し続けます。

代わりに、次を使用する必要があります。

Type=simple

独自の背景知識のないアプリケーションに適しています。これにより、systemdデーモンはプロセスを追跡しますが、systemctl有効な背景からすぐに返されます。 Simpleはデフォルトタイプなので、必要に応じてTypeフラグを完全に省略できます。

関連情報