アプリケーションアカウントに対してUnix管理者が有効にした後、次のsystemd --user
サービステンプレートを作成しました(わかるように、独自にAnsibleテンプレートから最初に作成されました。なぜなら、RHEL7のsystemd-versionはまだそれを理解していないからです%H
)。
[Unit]
Description=%i Secondary Services
[Install]
WantedBy=default.target
[Service]
WorkingDirectory=%h/apps/%i
{% set ICODE = ansible_hostname | upper %}
ExecStartPre=test -d %h/apps/%i/adco/datafiles
ExecStart=/bin/bash ./launchapp /INSTALLATION_CODE:{{ ICODE }}
ExecStop=/bin/bash ./launchapp /INSTALLATION_CODE:{{ ICODE }} -k
Type=forking
PIDFile=%h/apps/%i/logs/{{ ICODE }}.pid
Restart=always
RestartSec=7
StartLimitBurst=0
Nice=7
TimeoutSec=3593
これにより、共有サーバー上のアプリケーションのインスタンスごとに1つずつ複数のサービスを作成できます。この作業は先週、オペレーティングシステムのパッチが出るまで約2ヶ月間行われた。
パッチの後、パッチが適用されたすべてのシステムでサービスが継続的に再起動されます。これは、アプリケーションに問題がなく(変更なし)、プロセスsystemd --user
自体が再起動されたためです。
私たちのUnixサポートスタッフは理解しようとしています。なぜそしてそれはできません。ログに記録されるのはすべて「再起動」だけです(RHELは/var/log/messages
人間が読むことができず、ルートが必要です)。
彼らが何が起こっているのか理解しようとしている間、私はその行Type=forking
をコメントアウトしました。そして再起動が中断されました!systemctl --user status
すべてのサービスを一覧表示する:systemd --user
テンプレートの複数のインスタンスを下から上に一覧表示します。
質問:
systemd --user
引き続き再起動すること、私たち自身に何の問題があるかもしれませんか?実行されたアプリケーションはリソース集約的で、約40の大規模プロセスを実行しました。しかし、以前はこの問題は発生しませんでした。たぶん起動するプロセスの数に制限はありますかsystemd --user
?それとも総メモリ使用量ですか?それでは、なぜ我々は以前に攻撃しなかったのですか?Type
コメントアウトが -line に役立つのはなぜですか?systemd
メインプロセス(PIDがPIDファイルに書き込まれている)が消えた場合、それをコメントアウトするのにかかる費用はいくらですか?たとえば、まだ目立つことができますか?再起動時にアプリケーションインスタンスが起動しますか?