linux后台运行&符号、nohup命令、输出重定向等使用方法

列出若干种情形,便于这几个命令及参数的理解:

在命令最后加上&符号,表示让这个进程到后台去执行,这样立刻返回到提示符状态,我们可以接着做下面的事。如:command &

但此时如果这个进程有输出,还是会显示出来,这又会干扰到我们的shell窗口。所以可以考虑把标准输出重定向到某个文件去,如:command >output &

现在清净了。但有时我们会发现后台运行的进程出错了,我们希望把错误信息也保存起来。那就用到了linux中默认定义两个变量:1指标准输出;2指错误输出,所以写成这样:command 1>output 2>error & ,正常的输出在output文件里,错误的输出在error文件里。这里也等同于command >output 2>error &

有时候只想保留一种,另外一个既不输出又不保存,那就用到这个设备/dev/null,所以忽略错误输出:command 1>output 2>/dev/null & ;忽略标准输出:command 1>/dev/null 2>error &;忽略全部输出: command 1>/dev/null 2>/dev/null

1,2两种信息之间还可以进行重定向,所以这种:command 1>output 2>&1 & 表示错误输出也重定向回标准输出,即两种信息都保存到output里。那干嘛不写成command 1>output 2>output & 呢?答案是这样不行,别看都输出到/dev/null可以,但如果写成相同的文件名会导致冲突,所以如果想同时保留只能是上面的写法;同理:忽略全部输出还可以写成: command >/dev/null 2>&1 &

这样的文件输出,每次运行会覆盖现有的文件,如果我们希望追加而不是覆盖,那么就用>>符号,这样命令就是: command 1>>log 2>>error &

基本上参数的各种写法都在这里了,但有个问题。这种“后台”进程在shell一直打开的情况下是没有问题的,如果我们关了shell窗口甚至退出ssh登录或vnc登录,那么进程自动就结束了。所以如果想退出窗口乃至退出登录仍然保持程序运行,再加上nohup,形如:nohup command 1>output 2>&1 &

大概就这些情况了。

linux后台运行&符号、nohup命令、输出重定向等使用方法

时间: 2024-09-29 23:57:25

linux后台运行&符号、nohup命令、输出重定向等使用方法的相关文章

PYTHON的程序在LINUX后台运行

1.nohup 命令 nohup nohup 命令 用途:LINUX命令用法,不挂断地运行命令. 语法:nohup Command [ Arg ... ] [ & ] 描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号.在注销后使用 nohup 命令运行后台中的程序.要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部. 如果不将 nohup 命令的输出重定向,输出将附加到当前目录的 noh

Linux后台运行

有两种方式: 1. command & : 后台运行,你关掉终端会停止运行2. nohup command & : 后台运行,你关掉终端也会继续运行 一. 简介 Linux/Unix 区别于微软平台最大的优点就是真正的多用户,多任务.因此在任务管理上也有别具特色的管理思想.我们知道,在 Windows 上面,我们要么让一个程序作为服务在后台一直运行,要么停止这个服务.而不能让程序在前台后台之间切换.而 Linux 提供了 fg 和bg 命令,让你轻松调度正在运行的任务.假设你发现前台运行的

让程序在linux后台运行的方法

常见用法: nohup ./Thriftc & > /dev/null & 在linux后台运行Thriftc程序,并将其输出重定向到空设备:/dev/null,也就是将程序输出全部丢弃. nohup COMMAND > out.log 2>&1 & 在linux后台运行COMMAND命令,将标准输出重定向到out.log文件,标准错误也重定向到out.log文件(标准错误重定向到标准输出,再将标准输出重定向到out.log). 上边的示例涉及到两个命令:

linux必会命令 - 后台运行程序 - nohup、&

在Linux中,让某个程序在后台运行我们通常会用 & 在程序结尾来让程序自动后台运行. 比如我们要在后台运行某个Java项目: java -Xms512M -Xmx512M -Xmn200m -Xss4m -jar  project.jar  &. 可是有很多程序并不像Java一样,&对有些程序不起作用,这时我们改用nohup命令即可: nohup java -Xms512M -Xmx512M -Xmn200m -Xss4m -jar  project.jar . 原文地址:htt

linux后台运行命令nohup和&的区别

1.   &的意思是在后台运行, 什么意思呢?  意思是说, 当你在执行 ./a.out & 的时候, 即使你用ctrl C,  那么a.out照样运行(因为对SIGINT信号免疫). 但是要注意, 如果你直接关掉shell后, 那么, a.out进程同样消失. 可见, &的后台并不硬(因为对SIGHUP信号不免疫). 2.   nohup的意思是忽略SIGHUP信号, 所以当运行nohup ./a.out的时候, 关闭shell, 那么a.out进程还是存在的(对SIGHUP信号

linux 后台运行nohup & ctrl+z

使用Linux时,经常希望有些命令结果不在前台显示,如sh脚本,耗时的命令等.一般情况下,使用 & 将命令结果后台运行,如sh test.sh,脚本后台执行. 有时候命令已经在前台执行了,需要将其切换到后台可以使用, ctrl+z ,但是该命令切换到后台会处于暂停状态,可以配合 jobs 进一步处理后台的命令(进程). 更极端的情况是 有些命令需要占用很长的时间却又不能间断,如下载...,这时候需要 nohup (ignoring hangup signals) 忽略挂起信号一直在后台执行. 比

linux后台运行命令

来源:http://www.ibm.com/developerworks/cn/linux/l-cn-nohup/ 我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败.如何让命令提交后不受本地关闭终端窗口/网络断开连接的干扰呢?下面举了一些例子, 您可以针对不同的场景选择不同的方式来处理这个问题. nohup/setsid/& 场景: 如果只是临时有一个命令需要长时间运行,什么方法能最简便的保证

在linux后台运行脚本的方法和命令

后台运行脚本执行脚本test.sh:./test.sh中断脚本test.sh:ctrl+c在1的基础上将运行中的test.sh,切换到后台并暂停:ctrl+z执行ctrl+z后,test.sh在后台是暂停状态(stopped),使用命令:bg number让其在后台开始运行("number"是使用jobs命令查到的 [ ]中的数字,不是pid)直接在后台运行脚本test.sh:./test.sh &查看当前shell环境中已启动的任务情况:jobs将test.sh切换到前台运行

linux后台运行、关闭、查看后台任务常用命令

一.& 加在一个命令的最后,可以把这个命令放到后台执行,如: [[email protected] ~]# watch -n 3 "sh 1.sh"  #每3s在后台执行一次1.sh脚本 二.ctrl + z 可以将一个正在前台执行的命令放到后台,并且处于暂停状态. 三.jobs 查看当前有多少在后台运行的命令 jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated.但是如果任务被终止了(kill),shell 从