답변:
이것을 시도 할 수 있습니다.
#!/bin/sh
nohup java -jar /web/server.jar &
& 기호는 프로그램이 백그라운드에서 실행되도록 전환합니다.
nohup 유틸리티는 로그 아웃 한 후에도 백그라운드에서 인수로 전달 된 명령을 실행합니다.
nohup
은 항상 stdout 및 stderr를 명시 적으로 리디렉션하는 것과 결합되어야합니다 nohup.out
.
Systemd 지금 배포판의 대부분에서 실행
내 사용자 정의 서비스 찾기 /usr/lib/systemd/system/
좋아하는 텍스트 편집기로 텍스트 파일을 만듭니다. whatever_you_want.service
다음 템플릿 을 파일에 넣기
whatever_you_want.service
[Unit]
Description=webserver Daemon
[Service]
ExecStart=/usr/bin/java -jar /web/server.jar
User=user
[Install]
WantedBy=multi-user.target
슈퍼 사용자로 서비스 실행
$ 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
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
java -jar /web/server.jar > /var/log/yourservice.log 2>&1 &