该过程默认已经安装jdk。java程序启动方式有多重,列出如下几种。
1、java -jar demo.jar
使用该命令程序在控制台输出启动,当按下Ctrl+C和关闭终端时,程序会终止。输出日志,在后面加上 > 文件名,如:java -jar demo.jar > demo.log
2、nohup java -jar demo.jar
该命令会后台启动,不打印启动过程,但和上面的一样,关闭终端和按下Ctrl+C时,程序终止。使用该命令会将日志重定向到默认的nohup.out文件中,如果修改指定文件,则在命令后面加上 >> 文件名,即 java -jar demo.jar > demo.log 。如下:
3、java -jar demo.jar &
该命令依旧会在控制台输出启动过程,但按下Ctrl+C和关闭终端('关闭终端不是关闭服务器')时,程序依然运行,并不会关闭。输出日志文件,在命令后面加上 > 文件名即可。即:java -jar demo.jar & > demo.log
4、nohup java -jar demo.jar &
该命令运行不打印启动过程,按下Ctrl+C和关闭终端时,程序依然运行。指定日志文件命令为 nohup java -jar demo.jar >> demo.log &.
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 &
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
7、设置服务
# systemctl daemon-reload
# systemctl start demo.service
# systemctl enable demo.service
# systemctl status demo.service
为了方便启动jar项目,我们可以使用xxx.service方式。
cd etc/systemd/system
2. 创建一个*.service 后缀的文件(设置为自己的项目服务名称),编辑内容
vi harry-admin.service
[Unit]Description=harry-admin service #服务描述[Service]WorkingDirectory=/home/kangaroo-parts/ #指定服务的工作目录PrivateTmp=trueRestart=alwaysType=simple #服务启动类型 可选类型有simple forkingExecStart=/usr/java/jdk1.8.0_121/bin/java -Xmx1024m -Xms512m -Xss256k -jar /home/kangaroo-parts/harry-admin.jar #启动命令 ExecStop=/usr/bin/kill -15 $MAINPID #停止命令[Install]WantedBy=multi-user.target
systemctl daemon-reload
systemctl start harry-admin
或systemctl start harry-admin.service
systemctl status harry-admin #查看服务状态systemctl stop harry-admin #停止服务systemctl start harry-admin #启动服务systemctl reload harry-admin #重新加载#设置开机自启动:systemctl enable harry-admin#或systemctl enable harry-admin.service# 又或者不想开机启动:systemctl disable harry-admin#或systemctl disable harry-admin.service
在service中配置一下参数,可以远程dug调试代码
ExecStart=/usr/java/jdk1.8.0_121/bin/java -Xmx1024m -Xms512m -Xss256k -agentlib:jdwp=transport=dt_socket,serv