Centos 7 시스템에서 systemd 서비스 설정 문제

Centos 7 시스템에서 systemd 서비스 설정 문제

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

관련 정보