Centos 7システムでのsystemdサービス設定の問題

Centos 7システムでのsystemdサービス設定の問題

ベンダーのアプリケーションは、root以外のユーザーを使用してインストールされます。これはベンダーによってサポートされ、すべてが正常です。したがって、root以外のユーザーは、インストールされているすべてのアプリケーション実行可能ファイルとファイルを所有します。ソフトウェア要件の1つは、製品を使用するユーザーのプロファイルに環境変数を設定することです。 root以外のユーザーのインストールでは、それをインストールしたユーザーのみが使用されるため、次のファイルに以下を定義しました.bash_profile

export CFROOT=/usr/opt/tibco/mft/ps

それから私は

export PATH=$CFROOT:$PATH

みんな大丈夫です。ユーザーはログインしてデーモンを起動でき、すべてが正常です。ユーザーはログアウトすることもでき、デーモンは引き続き実行されます。

起動時に製品が起動し、そのユーザーとしてログインして起動する必要がないようにしたいと思います。

mftps.serviceディレクトリにファイルを作成しました/usr/lib/systemd/system

サービスファイルには次の設定が含まれています。

[Unit]
Description=MFT Platform Server Service
After=network.target

[Service]
Type=simple
User=tibcomft
EnvironmentFile=/etc/sysconfig/mftps
ExecStart=/usr/opt/tibco/mft/ps/cfstart
ExecStop=/usr/opt/tibco/mft/ps/cfstop
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

注:これを追加する前に未定義エラーが発生し続けましたEnvironmentFileCFROOT設定の調査中に関連情報を見つけてファイルを追加しました/etc/sysconfig/mftps。このsysconfigファイルには次のものがあります。

CFROOT=/usr/opt/tibco/mft/ps
export CFROOT

注:上記の設定は、sysconfigファイルを機能させる唯一の方法です。たとえば、「$」のエントリがあると失敗export PATH=$CFROOT:$PATHしますsystemctl start

systemctl start mftps.service今実行すると、何が起こり、表示される状態が表示されますか?

[root@centos72sys jbarker]# systemctl status mftps.service
● mftps.service - MFT Platform Server Service
   Loaded: loaded (/usr/lib/systemd/system/mftps.service; disabled; vendor preset: disabled) 
 Active: inactive (dead)

Jan 13 13:12:11 centos72sys systemd[1]: Started MFT Platform Server Service.
Jan 13 13:12:11 centos72sys systemd[1]: Starting MFT Platform Server Service...
Jan 13 13:12:11 centos72sys cfstart[4237]: MFT Platform Server Responder will be started from /usr/opt/tibco/mft/ps
Jan 13 13:12:12 centos72sys cfstart[4237]: Failed To Start CyberResp process. Read /usr/opt/tibco/mft/ps/FailureReason.txt
[root@centos72sys jbarker]#

私が見ると、FailureReason.txt次の内容が表示されます。

cfsend not found in PATH

実行可能ファイルはcfsend定義されたパスにありますが、$CFROOTユーザーがコマンドを実行したときに何も起動しないため、cfstartこのエラーが発生する理由はわかりません。

ベストアンサー1

私は同じ問題に直面し、/etc/sysconfig/mftpsに次の行を追加することで解決しました。

more /etc/sysconfig/mftps
CFROOT=/apps/opt/mftps
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin:/root/bin:/apps/opt/mftps:/apps/opt/mftps/config

more /etc/systemd/system/mftps.service
[Unit]
Description=MFT Platform Server Service
After=network.target

[Service]
Type=forking
User=root
EnvironmentFile=/etc/sysconfig/mftps
ExecStart=/apps/opt/mftps/cfstart
ExecStop=/apps/opt/mftps/cfstop
RemainAfterExit=yes
WorkingDirectory=/apps/opt/mftps

[Install]
WantedBy=multi-user.target

ps -ef | grep Cyb
root     22513     1  0 13:22 ?        00:00:00 /apps/opt/mftps/CyberResp
root     22731 20313  0 13:23 pts/18   00:00:00 grep --color=auto Cyb

systemctl stop mftps.service

ps -ef | grep Cyb
root     25374 20313  0 13:25 pts/18   00:00:00 grep --color=auto Cyb

systemctl start mftps.service
ps -ef | grep Cyb
root     26454     1  0 13:25 ?        00:00:00 /apps/opt/mftps/CyberResp
root     26698 20313  0 13:25 pts/18   00:00:00 grep --color=auto Cyb

おすすめ記事