systemd를 사용하여 Informatica를 서비스로 시작

systemd를 사용하여 Informatica를 서비스로 시작

재부팅 시 자동으로 시작되도록 Informatica를 서비스로 시작하려고 합니다. 저는 RHEL 7.5와 Informatica 9.5.1을 사용하고 있습니다. 다시 시작한 후 서비스가 시작되고 도메인 및 관리 콘솔이 시작되었지만 리포지토리가 통합 서비스에 연결할 수 없습니다(Informatica가 서비스로 시작되지 않고 수동으로 시작된 경우 가능함).

내 시스템 환경 파일(/etc/systemd/system/informatica.service.d/env.conf)은 다음과 같습니다.

Environment=INFA_USER="infa"

#######DB2 Environment
. /home/db2inst1/sqllib/db2profile
Environment=DB2HOME=/home/db2inst1
Environment=DB2INSTANCE=db2inst1
Environment=DB2DIR=/opt/ibm/db2/V11.5
Environment=PATH=/app/infa/server/bin:/home/db2inst1/sqllib/bin
Environment=LANG=C

#######Informatica Specific Environment
Environment=INFA_HOME=/app/infa
Environment=INFA_DOMAINS_FILE=/app/infa/domains.infa
Environment=ODBCHOME=/app/infa/ODBC7.0
Environment=ODBCINI=/app/infa/ODBC7.0/odbc.ini
Environment=JAVA_HOME=/app/infa/java
Environment=PC_SERVICE=/app/infa/tomcat/bin
Environment=INFA_SHARED=/app/infa/services/shared
Environment=ODBCINST=/app/infa/ODBC7.0/odbcinst.ini
Environment=LD_LIBRARY_PATH=/app/infa/tomcat/bin:/app/infa/server/bin:/home/db2inst1/sqllib/lib64:/opt/ibm/db2/V11.5/lib64
Environment=HOME=/home/infa
Environment=LANG=en_US.utf8
Environment=NLS_LANG=american_america.UTF8
Environment=INFA_CODEPAGENAME=UTF-8

내 systemd(/etc/systemd/system/informatica.service) 파일은 다음과 같습니다.

####### Informatica System Service

####### /etc/systemd/system/informatica.system
[Unit]
Description=Informatica Startup Service
After=syslog.target network.target

[Service]
#######systemd ignores PAM limits, so set any necessary limits in the service
LimitMEMLOCK=infinity
LimitNOFILE=65535
Type=forking
#######RemainAfterExit=yes
Restart=on-failure
User=infa
Group=infa
StandardOutput=console
EnvironmentFile=/etc/systemd/system/informatica.service.d/env.conf
WorkingDirectory=/app/infa/tomcat/bin/
ExecStart=/app/infa/tomcat/bin/infaservice.sh startup
ExecStop=/app/infa/tomcat/bin/infaservice.sh shutdown
ExecReload=/app/infa/tomcat/bin/infaservice.sh shutdown;/app/infa/tomcat/bin/infaservice.sh startup
SyslogIdentifier=Informatica.service

[Install]
WantedBy=default.target

내가 얻는 오류는 다음과 같습니다.

"Database Driver event...Error occurred loading library [libdb2.so.1:cannot
open shared object file: No such file or directory] Database driver
event...Error occurred loading library [libpmdb2.so]

제가 시스템 스크립트에 익숙하지 않기 때문에 변경해야 할 사항을 이해하도록 도와줄 수 있는 사람이 있습니까?

참고:- 또한 env.conf 파일에서 "Environment" 대신 "PassEnvironment"를 사용해 보았습니다. 또한 사용자와 그룹을 infa로 언급했지만 서비스는 여전히 루트로 시작됩니다.

**ps -ef | grep pm**

루트 3771 3159 0 15:20 pm/2 00:00:00 grep --color=auto pm

**인포매티카 서비스 현황은 다음과 같습니다.-**

# systemctl status informatica
● informatica.service - Informatica Startup Service
   Loaded: loaded (/etc/systemd/system/informatica.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/informatica.service.d
           └─env.conf
   Active: active (running) since Tue 2019-09-10 15:50:59 HKT; 16min ago
  Process: 1795 ExecStop=/app/infa/tomcat/bin/infaservice.sh shutdown (code=exited, status=0/SUCCESS)
  Process: 1884 ExecStart=/app/infa/tomcat/bin/infaservice.sh startup (code=exited, status=0/SUCCESS)
 Main PID: 1927 (java)
   CGroup: /system.slice/informatica.service
           ├─1927 /app/infa/java/bin/java -ea -Djava.awt.headless=true -Duser.dir=/app/infa/tomcat/bin -DINFA_PLUGINS_HOME=/app/infa/plugins -DI...
           └─2100 /app/infa/java/bin/java -XX:GCTimeRatio=9 -XX:MaxPermSize=128m -Xmx512M -Dsun.reflect.noInflation=true -d64 -DFrameworksLogFil...

Sep 10 15:50:53 infatest systemd[1]: informatica.service holdoff time over, scheduling restart.
Sep 10 15:50:53 infatest systemd[1]: Starting Informatica Startup Service...
Sep 10 15:50:59 infatest Informatica.service[1884]: Starting Informatica services on node 'node01_infatest'
Sep 10 15:50:59 infatest Informatica.service[1884]: Using CURRENT_DIR:     /app/infa/tomcat/bin
Sep 10 15:50:59 infatest Informatica.service[1884]: Using INFA_HOME:       /app/infa
Sep 10 15:50:59 infatest systemd[1]: Started Informatica Startup Service.

감사합니다.

관련 정보