백그라운드 프로세스로 서버에서 Java jar 파일 실행
두 응용 프로그램간에 통신하려면 서버에서 Java jar를 실행해야합니다. 실행하기 위해 두 개의 셸 스크립트를 작성했지만 해당 스크립트를 시작하면 프로세스를 종료 / 종료 할 수 없습니다. ctrl+를 누르 C거나 콘솔을 닫으면 서버가 종료됩니다. 아무도이 스크립트를 일반 서버로 실행하도록 수정하는 방법을 도와 줄 수 있습니까?
#!/bin/sh
java -jar /web/server.jar
echo $!
#> startupApp.pid
이것을 시도 할 수 있습니다.
#!/bin/sh
nohup java -jar /web/server.jar &
& 기호는 프로그램이 백그라운드에서 실행되도록 전환합니다.
nohup 유틸리티는 로그 아웃 한 후에도 백그라운드에서 인수로 전달 된 명령을 실행합니다.
Ubuntu를 사용 중이고 "Upstart"(http://upstart.ubuntu.com/)가있는 경우 다음을 시도해 볼 수 있습니다.
창조하다 /var/init/yourservice.conf
다음 내용으로
description "Your Java Service"
author "You"
start on runlevel [3]
stop on shutdown
expect fork
script
cd /web
java -jar server.jar >/var/log/yourservice.log 2>&1
emit yourservice_running
end script
이제 service yourservice start
및 service yourservice stop
명령을 실행할 수 있습니다 . /var/log/yourservice.log
작동하는지 확인하기 위해 꼬리 를 달 수 있습니다 .
콘솔 창을 호깅하지 않고 콘솔에서 jar를 실행하려면 다음을 수행하면됩니다.
java -jar /web/server.jar > /var/log/yourservice.log 2>&1
Systemd 지금 배포판의 대부분에서 실행
1 단계:
내 사용자 정의 서비스 찾기 /usr/lib/systemd/system/
2 단계:
좋아하는 텍스트 편집기로 텍스트 파일을 만듭니다. whatever_you_want.service
3 단계 :
다음 템플릿 을 파일에 넣기whatever_you_want.service
[Unit]
Description=webserver Daemon
[Service]
ExecStart=/usr/bin/java -jar /web/server.jar
User=user
[Install]
WantedBy=multi-user.target
4 단계 :
슈퍼 사용자로 서비스 실행
$ systemctl start whatever_you_want.service # starts the service
$ systemctl enable whatever_you_want.service # auto starts the service
$ systemctl disable whatever_you_want.service # stops autostart
$ systemctl stop whatever_you_want.service # stops the service
$ systemctl restart whatever_you_want.service # restarts the service
참고 URL : https://stackoverflow.com/questions/12102270/run-java-jar-file-on-a-server-as-background-process
'Programing' 카테고리의 다른 글
scp를 사용하여 dir을 재귀 적으로 복사 할 때 파일을 필터링하는 방법은 무엇입니까? (0) | 2020.08.29 |
---|---|
ARC는 디스패치 대기열을 지원합니까? (0) | 2020.08.29 |
Android Studio 이미지 자산 실행기 아이콘 배경색 (0) | 2020.08.29 |
명령 줄에서 현재 디렉토리 제공 (0) | 2020.08.29 |
SQL Server : MAX (DATE)가있는 행만 선택 (0) | 2020.08.29 |