nohup和&命令*

原创
2014/11/26 10:31
阅读数 535

nohup command1:

实验结果:nohup是将command1运行的输出(如果你的标准输出和标准错误输出没有重定向到别的地方,默认就是到nohup.out了),输出到nohup文件中,如果按ctrl+c结束command1,那么command1也就结束了,不会在后台运行。如果是输出结果到nohup中的也被打断了,因为是标准输出到nohup文件中。同时如果关闭ssh客户端,也就是退出账户,如果加了nohup,那么命令会后台运行,如果没有加nohup,那么命令会在退出账户的时候被结束掉。

网上搜索结果:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。

&:

还是按ctrl+c,命令都将后台执行。也就是执行这个程序的同时,你的终端同时还能够做其他的事情,如果不加这个符号,那么你执行这个程序后,你的终端只能等这个程序执行完成才能够继续执行其他的操作 。

加&是把命令交给linux内核去运行一个进程任务,不加是通过shell来启动一个进程任务。linux是一个多任务的操作系统,shell可以理解为一个单任务的操作系统(就像DOS一样)。单任务操作系统,可以通过自己启动另一个任务。多任务操作系统,可以同时运行多个任务。

所以两个命令一般结合用,如下:

nohup command &

加了nohup后,当你退出账户,关闭ssh客户端时,还是一样的会在后台运行。加了&后,命令会自动后台运行(交给linux内核去处理),不需要按ctrl+c。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部