Linux后台运行命令
2017-08-18 18:16
260 查看
&是指在后台运行
nohup是永久执行
用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意nohup没有后台运行的意思;&才是后台运行
&是指在后台运行,但当用户退出(挂起)的时候,命令自动也跟着退出
那么,我们可以巧妙的吧他们结合起来用就是
nohup COMMAND &
这样就能使命令永久的在后台执行
上面这些话引自nohup和&的区别 http://bbs.nanjimao.com/thread-470-1-1.html (出处: 南极猫)
下面是我自己的实践:
例1
[root@localhost ~]# mkdir hui
[root@localhost ~]# cd hui
[root@localhost hui]# touch test.txt
[root@localhost hui]# tail -F -n 0 test.txt &
[1] 16065
在SecureCRT中再打开另一个终端输入
[root@localhost hui]# ps -ef(可找到下面这一行)
root 16065 16005 0 22:04 pts/3 00:00:00 tail -F -n 0 test.txt
[root@localhost ~]# echo "hehe" >> hui/test.txt
[root@localhost ~]# echo "haha" >> hui/test.txt
在原来的终端中弹出如下内容,很烦的。。。
[root@localhost hui]# hehe
haha
把原终端关闭后在另一个终端中输入ps -ef则那一行消失即命令已退出。你也可以在原终端不关闭情况下用命令kill -9 16065
补充:如果你不想在原终端不时的弹出内容,你可以这样做
[root@localhost hui]# tail -F -n 0 test.txt 1>/dev/null 2>&1 &
说明:1>/dev/null的意思将标准输出重定向到/dev/null中,2>&1的意思是将错误输出也和标准输出重定向到相同的地方
例2
[root@localhost hui]# nohup tail -F -n 0 test.txt
nohup: appending output to `nohup.out'
输入符一直在这一行闪烁(无法退出只能按Ctrl+c都能将其停止但该命令也被终止)
打开另一个终端
[root@localhost ~]# ps -ef
root 16102 16005 0 22:08 pts/3 00:00:00 tail -F -n 0 test.txt
[root@localhost ~]# echo "haha" >> hui/test.txt
(无论哪个终端都不会弹出haha而是写入到了hui/nohup.out文件中。一般在当前目录下,如果当前目录不可写,那么自动保存到执行这个命令的用户的home目录下,例如root的话就保存在/root/下)
关闭原终端在刚开的另一终端再输入ps -ef后那一行依旧存在,只能用命令kill -9 16102或者不关闭原终端在输入符闪烁的时候按Ctrl+c都能将其停止
例3
[root@localhost hui]# nohup tail -F -n 0 test.txt &
[1] 16164
[root@localhost hui]# nohup: appending output to `nohup.out'
输入符一直在这一行闪烁
(按Ctrl+c或者回车键退回到命令行但命令并没有退出)
打开另一个终端
[root@localhost ~]# ps -ef
root 16164 16075 0 22:21 pts/2 00:00:00 tail -F -n 0 test.txt
[root@localhost ~]# echo "haha" >> hui/test.txt (无论哪个终端都不会弹出haha)
关闭原终端在刚开的另一终端再输入ps -ef后那一行依旧存在,只能用命令kill -9 16164使其停止
nohup是永久执行
用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意nohup没有后台运行的意思;&才是后台运行
&是指在后台运行,但当用户退出(挂起)的时候,命令自动也跟着退出
那么,我们可以巧妙的吧他们结合起来用就是
nohup COMMAND &
这样就能使命令永久的在后台执行
上面这些话引自nohup和&的区别 http://bbs.nanjimao.com/thread-470-1-1.html (出处: 南极猫)
下面是我自己的实践:
例1
[root@localhost ~]# mkdir hui
[root@localhost ~]# cd hui
[root@localhost hui]# touch test.txt
[root@localhost hui]# tail -F -n 0 test.txt &
[1] 16065
在SecureCRT中再打开另一个终端输入
[root@localhost hui]# ps -ef(可找到下面这一行)
root 16065 16005 0 22:04 pts/3 00:00:00 tail -F -n 0 test.txt
[root@localhost ~]# echo "hehe" >> hui/test.txt
[root@localhost ~]# echo "haha" >> hui/test.txt
在原来的终端中弹出如下内容,很烦的。。。
[root@localhost hui]# hehe
haha
把原终端关闭后在另一个终端中输入ps -ef则那一行消失即命令已退出。你也可以在原终端不关闭情况下用命令kill -9 16065
补充:如果你不想在原终端不时的弹出内容,你可以这样做
[root@localhost hui]# tail -F -n 0 test.txt 1>/dev/null 2>&1 &
说明:1>/dev/null的意思将标准输出重定向到/dev/null中,2>&1的意思是将错误输出也和标准输出重定向到相同的地方
例2
[root@localhost hui]# nohup tail -F -n 0 test.txt
nohup: appending output to `nohup.out'
输入符一直在这一行闪烁(无法退出只能按Ctrl+c都能将其停止但该命令也被终止)
打开另一个终端
[root@localhost ~]# ps -ef
root 16102 16005 0 22:08 pts/3 00:00:00 tail -F -n 0 test.txt
[root@localhost ~]# echo "haha" >> hui/test.txt
(无论哪个终端都不会弹出haha而是写入到了hui/nohup.out文件中。一般在当前目录下,如果当前目录不可写,那么自动保存到执行这个命令的用户的home目录下,例如root的话就保存在/root/下)
关闭原终端在刚开的另一终端再输入ps -ef后那一行依旧存在,只能用命令kill -9 16102或者不关闭原终端在输入符闪烁的时候按Ctrl+c都能将其停止
例3
[root@localhost hui]# nohup tail -F -n 0 test.txt &
[1] 16164
[root@localhost hui]# nohup: appending output to `nohup.out'
输入符一直在这一行闪烁
(按Ctrl+c或者回车键退回到命令行但命令并没有退出)
打开另一个终端
[root@localhost ~]# ps -ef
root 16164 16075 0 22:21 pts/2 00:00:00 tail -F -n 0 test.txt
[root@localhost ~]# echo "haha" >> hui/test.txt (无论哪个终端都不会弹出haha)
关闭原终端在刚开的另一终端再输入ps -ef后那一行依旧存在,只能用命令kill -9 16164使其停止
相关文章推荐
- linux命令后台运行
- linux 后台运行命令
- linux命令后台运行
- Linux后台运行命令的方法
- Linux 后台运行命令
- 使用nohup让linux命令在后台运行
- LINUX后台运行程序命令
- Linux下使Shell 命令脱离终端在后台运行
- nohup命令在linux系统,控制jar包后台运行
- 转:详述Linux后台运行命令 &
- 如何在后台运行 Linux 命令并且将进程脱离终端
- linux后台运行命令详解
- Linux执行shell脚本方式及区别&命令后台运行
- linux命令后台运行
- Linux让程序后台运行命令之screen与nohup
- Linux下使Shell 命令脱离终端在后台运行
- Linux后台运行命令详述
- linux后台运行命令
- linux命令后台运行
- linux 命令后台运行(转载)