目录
一、命令与解析
1、命令
2、解析
二、查询与关闭
1、查询
a、查询demo进程
b、查询demo进程排除当前进程
c、查看所有进程
d、查看哪个端口被占用
2、关闭与其他
a、关闭进程
b、实时查看日志
三、启动Jar包
1、java -jar demo.jar
2、java -jar demo.jar &
3、nohup java -jar demo.jar &
4、nohup java -jar demo.jar > ./demo.log 2>&1 &
四、启动脚本制作
1、制作脚本
2、执行脚本
测试环境后经常需要部署重启项目, 操作重复而繁琐, 脚本制作与详解献上~
一、命令与解析
1、命令
nohup java -jar ./home/app/demo.jar > -Dspring.config.location=tmp/springboottmp/test.yml --spring.profiles.active=test -Dserver.port=8080 -Dserver.address=127.0.0.1 > logs/demo.log 2>&1 &
2、解析
nohup不挂断运行命令,当账户退出或终端关闭时,程序仍然运行java -jar运行jar包-Dspring.config.location使用-Dspring.config.location指定配置文件,优先级高于jar包内部的配置文件--spring.profiles.active=test指定配置文件.yml-Dserver.port指定端口号-Dserver.address指定IP2>&1在shell中,0表示标准输入,1表示标准输出,2表示标准错误。
而>表示重定向,而2>&1中的&则表示等同于的意思。> file表示将标准输出输出到file中,即相当于1>file2> error表示将标准错误输出到error中2>&1表示将标准错误也输出到标准输出中>/dev/null相当于1>/dev/null 2>&1表示将标准错误重定向到标准输出中,并将标准输出输出到无底洞中(即不记录)&&是指在后台运行
- 之所以要重定向,
- 是因为有的时候我们需要记录全部日志,
- 而有的时候我们只需要记录错误信息,
- 或者有的时候我们程序内部已经记录了日志因此不需要额外再记录日志。
二、查询与关闭
1、查询
a、查询demo进程
ps -ef | grep demo
本身也是一个进程, 可以发现每次使用进程号都不一样
b、查询demo进程排除当前进程
ps -ef | grep demo | grep -v grep
c、查看所有进程
ps -ef
d、查看哪个端口被占用
netstat -tln netstat -tln | grep 80
2、关闭与其他
a、关闭进程
kill -9 123
b、实时查看日志
tail -100f ./demo.log
三、启动Jar包
1、java -jar demo.jar
Ctrl+C打断程序运行,关闭窗口程序退出
2、java -jar demo.jar &
关闭窗口程序退出
3、nohup java -jar demo.jar &
nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行 当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中, 除非另外指定了输出文件。
4、nohup java -jar demo.jar > ./demo.log 2>&1 &
nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行,并指定日志文件
四、启动脚本制作
1、制作脚本
#!/bin/shcd /home/demo/
pid=`ps -ef|grep 'demo-0.0.1-SNAPSHOT.jar*'|grep -v grep|awk '{print $2}'`
if [ -n "${pid}" ];then
kill -9 ${pid}
echo "Process[WS] killed!"
nohup java -jar demo-0.0.1-SNAPSHOT.jar > ./demo.log 2>&1 &
echo "ReStart[WS] Success!"
tail -100f /opt/demo/demo.log
else
nohup java -jar demo-0.0.1-SNAPSHOT.jar > ./demo.log 2>&1 &
echo "Start[WS] Success!"
tail -100f /opt/demo/demo.log
fi
2、执行脚本