공급업체의 애플리케이션은 루트가 아닌 사용자를 사용하여 설치됩니다. 이는 공급업체에서 지원하며 모든 것이 정상입니다. 따라서 루트가 아닌 사용자는 설치된 모든 애플리케이션 실행 파일과 파일을 소유합니다. 소프트웨어 요구 사항 중 하나는 제품을 사용할 사용자의 프로필에 환경 변수를 설정하는 것입니다. 루트가 아닌 사용자 설치에서는 이를 설치한 사용자만 사용하므로 다음 파일에 다음을 정의했습니다 .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