ベンダーのアプリケーションは、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
注:これを追加する前に未定義エラーが発生し続けましたEnvironmentFile
。CFROOT
設定の調査中に関連情報を見つけてファイルを追加しました/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