该过程默认已经安装jdk。java程序启动方式有多重,列出如下几种。
1、java -jar demo.jar
![962ec26ba8b01b3acbc1fa2eb13b4490.png](https://img-blog.csdnimg.cn/img_convert/962ec26ba8b01b3acbc1fa2eb13b4490.png)
使用该命令程序在控制台输出启动,当按下Ctrl+C和关闭终端时,程序会终止。输出日志,在后面加上 > 文件名,如:java -jar demo.jar > demo.log
2、nohup java -jar demo.jar
![662458bdf995aac8f102c7d1a22096fa.png](https://img-blog.csdnimg.cn/img_convert/662458bdf995aac8f102c7d1a22096fa.png)
该命令会后台启动,不打印启动过程,但和上面的一样,关闭终端和按下Ctrl+C时,程序终止。使用该命令会将日志重定向到默认的nohup.out文件中,如果修改指定文件,则在命令后面加上 >> 文件名,即 java -jar demo.jar > demo.log 。如下:
![c982cd80f2cbbbce82bc97046745e92f.png](https://img-blog.csdnimg.cn/img_convert/c982cd80f2cbbbce82bc97046745e92f.png)
3、java -jar demo.jar &
该命令依旧会在控制台输出启动过程,但按下Ctrl+C和关闭终端('关闭终端不是关闭服务器')时,程序依然运行,并不会关闭。输出日志文件,在命令后面加上 > 文件名即可。即:java -jar demo.jar & > demo.log
![5b88e9fda9397beda4db8655245fa179.png](https://img-blog.csdnimg.cn/img_convert/5b88e9fda9397beda4db8655245fa179.png)
4、nohup java -jar demo.jar &
该命令运行不打印启动过程,按下Ctrl+C和关闭终端时,程序依然运行。指定日志文件命令为 nohup java -jar demo.jar >> demo.log &.
![37627b628b01b6963355010978766273.png](https://img-blog.csdnimg.cn/img_convert/37627b628b01b6963355010978766273.png)
5、设置java程序开机自启,首先创建文件,并赋权限 chmod +x demo.sh。
# vim /root/develop/demo.sh
#!/bin/bash
export JAVA_HOME="/root/jdk"
export PATH=$PATH:$JAVA_HOME/bin
nohup java -jar /root/develop/demo-0.0.1-SNAPSHOT.jar >> /root/develop/logs/demo.log &
![d354805c24c03b9d985d2c45d7e83668.png](https://img-blog.csdnimg.cn/img_convert/d354805c24c03b9d985d2c45d7e83668.png)
6、注册服务
#vim /etc/systemd/system/demo.service
[Unit]
Description=Java test service
After=network.target
[Service]
Type=forking
ExecStart=/bin/bash /root/develop/demo.sh
ExecStop=/bin/kill -s QUIT $MAINPID
[Install]
WantedBy=multi-user.target
![fc337b23fa8245458533fd9b91978f33.png](https://img-blog.csdnimg.cn/img_convert/fc337b23fa8245458533fd9b91978f33.png)
7、设置服务
# systemctl daemon-reload
# systemctl start demo.service
# systemctl enable demo.service
# systemctl status demo.service