欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux之后台运行程序

程序员文章站 2024-02-26 11:10:40
...

有些程序我们在打开时,会一直占用我们的终端,而且终端还不能关掉,所以这时候我们就需要让程序在后台运行。

解决办法:使用nohup命令

nohup 命令运行由 Command参数和任何相关的 Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。

command & : 后台运行,你关掉终端会停止运行
nohup command & : 后台运行,你关掉终端也会继续运行
& : 将指令丢到后台中去执行
[ctrl]+z : 將前台任务丟到后台中暂停
jobs : 查看后台的工作状态
fg : %jobnumber 将后台的任务拿到前台来处理
bg : %jobnumber 将任务放到后台中去处理
kill : 管理后台的任务
tmux:这是附赠的强大的一个功能

示例一:

nohup java -jar tspmock.jar > run.log 2>&1 &

参数说明: 

  • tspmock.jar: 你需要后台运行的程序. 
  • >: 日志文件追加到文件中 ;run.log: 运行的日志,或你的文件的输出内容.
  • & 是一个描述符,如果1或2前不加&,会被当成一个普通文件。
  • 1>&2 意思是把标准输出重定向到标准错误.
  • 2>&1 意思是把标准错误输出重定向到标准输出。
  • &>filename 意思是把标准输出和标准错误输出都重定向到文件filename中

示例二:

nohup java -jar tspmock.jar &
  • 可使用ps查询该进程,kill杀死进程
  • 可以利用jobs指令查看后台已经放入后台的任务:$ jobs -l
     
相关标签: 后台运行程序