2017-12-15 6 views
0

jar 파일을 데몬으로 실행하고 싶습니다. 그래서 나는 데몬을 "시작 | 다시 시작"하기위한 쉘 스크립트를 작성했습니다. 나는 일하는 상태에 대한 기회를 얻지 못했습니다. PID 파일을 만들지 않고이 스크립트를 사용할 수 있습니까? PID 파일이 필요한 이유는 무엇입니까? 어떤 경우에는 PID 파일을 사용해야합니까?systemd PID 파일이란 무엇입니까?

아래는 나의 UNIT 파일입니다.

[Unit] 
Description=myApp 
After=network.target 

[Service] 
Environment=JAVA_HOME=/opt/java/jdk8 
Environment=CATALINA_HOME=/opt/myApp/ 
User=nzpap 
Group=ngpap 
ExecStart=/kohls/apps/myApp/myapp-scripts/myapp-deploy.sh 
Restart=always 

[Install] 
WantedBy=multi-user.target 

인터넷을 통해 PID 개념을 탐색하여 정보를 얻지 못했습니다.

+0

스택 오버플로는 프로그래밍 및 개발 관련 질문 용 사이트입니다. 이 질문은 프로그래밍이나 개발에 관한 것이 아니기 때문에 주제와는 거리가 먼 것처럼 보입니다. 도움말 센터에서 [여기에서 내가 질문 할 수있는 항목은 무엇입니까?] (http://stackoverflow.com/help/on-topic)를 참조하십시오. 아마도 [Super User] (http://superuser.com/) 나 [Unix & Linux Stack Exchange] (http://unix.stackexchange.com/)가 더 나은 곳이 될 것입니다. – jww

답변

-1

jar 파일에 systemd을 설정하려고한다고 생각합니다. systemd 스크립트가 정상적이어야합니다.

PIDFile = : 서비스 유형이 "forking"으로 표시된 경우이 지시문은 모니터링해야하는 주 자식의 프로세스 ID 번호를 포함해야하는 파일의 경로를 설정하는 데 사용됩니다.

ExecStart=/usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306 

PID 파일은 kill 신호에 사용될 수있다.

ExecStart=/usr/bin/java -cp target/your_file.jar & 
ExecStop=/bin/kill -TERM $MAINPID