Answers:
您可以尝试以下方法:
#!/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 &