Linux后台运行程序与指定输出文件
2022-05-16 本文已影响0人
Gakki0725
作者:Gakki
后台启动运行
- linux 后台运行命令有两种方式:
- cmd &:后台运行,关掉终端会停止运行
- nohup cmd &:后台运行,关掉终端不会停止运行
方式一:cmd &
-
cmd &
实现让命令在后台运行,但关掉终端会停止运行。 - 注:不要将有用户交互的命令放到后台,这样命令会在后台等待用户输入。后台运行的命令也会将结果输出到控制台上,如果不需要的话,可以将其重定向到某个文件中。
方式二:nohup cmd &
nohup java -jar xxx.jar &
- nohup 命令:忽略所有挂起信号,当窗口关闭时,程序仍然运行。
- & 符号:程序后台运行。
注:
- nohup 命令可以让程序忽略所有挂起信号,被运行的程序的输出信息将不会显示到终端。无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到$HOME/nohup.out文件中。
- nohup 只有在使用 exit 命令正常退出终端,才能保证命令一直在后台运行。终端异常退出后台命令也会停止运行。
指定输出文件
nohup java -jar xxx.jar >xxx.log &
- xxx.log 就是指定的输出文件,如果不指定,默认在 jar 包所在目录,创建 nohup.out 文件
- xxx.file:将输出重定向到 xxx.file 文件,也就是将内容输出到 xxx.file 文件中。
其他相关命令
- ctrl + z:将正在前台执行的命令放到后台,且让命令处于暂停状态。
- jobs:查看当前有多少在后台运行的命令,-l选项可显示所有任务的PID。
- fg:将后台命令放回前台运行。
- bg:将嵌套命令放到后台运行