systemdを使用してこのユーザーとして複数のサービスを実行すると、このユーザーのすべてのサービスが終了します。

systemdを使用してこのユーザーとして複数のサービスを実行すると、このユーザーのすべてのサービスが終了します。

私たちはUbuntu 16.04 LTSを使用しており、起動時に起動する必要がある複数のTomcatインストールを使用したいと思います。 Tomcatの1つはJenkinsをホストして、別のTomcatにWebアプリケーションをデプロイして再起動します。

サービスを開始するためにsystemdサービススクリプトを追加しました。私たちは、男性の猫の1匹が止まったり死んだりすると、他の男性の猫も止まることを発見しました。

私たちはこれを/ usr / bin / yesだけを使用する2つの簡単なスクリプトに減らしました。

ユニットA

[Unit]
Description=A
After=syslog.target network.target

[Service]
Type=simple

ExecStart=/usr/bin/yes
ExecStop=/bin/kill -15 $MAINPID

User=tomcat8
Group=tomcat8

[Install]
WantedBy=multi-user.target

ユニットB

[Unit]
Description=B
After=syslog.target network.target

[Service]
Type=simple

ExecStart=/usr/bin/yes
ExecStop=/bin/kill -15 $MAINPID

User=tomcat8
Group=tomcat8

[Install]
WantedBy=multi-user.target

何が起こるか:1つのサービスが終了すると、2つのkill -9サービスも一緒に消えます。

  1. 両方のサービスが終了したのはなぜですか?これが起こらないようにするにはどうすればよいですか?
  2. 単一のユーザーとして複数のサービスを実行することはお勧めできませんか、それとも良い方法ですか?

編集する:明確にするために - systemdなしでtomcatを起動したときも同じことをしようとしました。この場合の動作は予想通りです。つまり、終了したサービスのみが停止し、他のサービスは引き続き実行されます。

編集2:このユーザーは、ログイン/アウトを実行するフロントエンドユーザーではありません。サービスへのアクセスはシステムユーザーのみに制限されます。

ベストアンサー1

これ変更ログsystemd(v230)の場合:

ユーザーがログアウトすると、systemd-logindはデフォルトでユーザーセッション範囲単位(session-XX.scope)の一部であるユーザープロセスを終了します。この動作はlogind.confのKillUserProcesses =設定によって制御されます。以前のデフォルト値「no」は「yes」に変更されました。これは、ユーザーセッションが後で適切にクリーンアップされますが、長期実行プロセスを意図的にログアウトしたままにするために追加の手順が必要であることを意味します。

これがデフォルトの動作です。また、変更をキャンセルする方法についても説明します。、、および)にlogind.conf設定KillUserProcesses=no --without-kill-user-processes optionconfigure

ただし、変更ログには以下も含まれています。

ユーザーが1回以上ログインしたときに実行され、単一のログインセッションが[email protected]終了した後も維持する必要があるすべてのサービスは、ユーザーサービスまたはスコープを使用して開始できますsystemd-run。 systemd-run(1)のマニュアルページは、以下の範囲で画面を実行する方法を示す例に展開されています[email protected]。同じコマンドがtmuxでも機能します。

そして

ユーザーがすべてのセッションからログアウトした後[Eメール保護]また、ユーザーが有効になっていない限り、デフォルトで終了しますlingering。ユーザーがログアウトしている間に長期実行ジョブを効果的に実行できるようにするには、遅延を有効にする必要があります。詳細は loginctl(1) を参照してください。ユーザーが認証なしで自分自身の遅延を設定できるように、デフォルトのpolkitポリシーを変更しました。

これはデフォルト値(kill'm all)と例外を提供する方法(enable)を使用するため、より重要ですlingering

追加情報:

おすすめ記事