nohup——脱机管理问题!

本文整理至:《鸟哥的Linux私房菜:基础学习篇(第三版)》

要注意癿是,我们在工作管理当中提到癿『背景』指是在终端机模式下可以避免 [crtl]-c 中断的一个情境,并不是放到系统的背景去喔!所以,工作管理的背景依旧不终端机有关啦! 在这样癿情况下,如果你是以进程联机方式连接到你癿 Linux 主机,并且将工作以 & 癿方式放到背景去, 请问,在工作尚未结束癿情况下你脱机了,该工作还会继续迚行吗?答案是『否』!不会继续迚行,而是会被中断掉。

那怎么办?如果我的工作需要进行一大段时间,我又不能放置在背景底下,那该如何处理呢? 你可以尝试使用 nohup 这个指令来处理喔!这个 nohup 可以让你在脱机或注销系统后,还能够让工作继续迚行。他的语法有点像这样:

[root@www ~]# nohup [指令与参数] <==在终端机前景中工作 
[root@www ~]# nohup [指令与参数] & <==在终端机背景中工作
我们来尝试玩一下底下的任务吧!
# 1. 先编辑一支会『睡着 500 秒』癿程序:
[root@linux ~]# cat 111.sh 
#!/bin/bash
/bin/sleep 500s
/bin/echo "I have slept 500 seconds."
# 2. 丢到背景中去执行,并且立刻注销系统:
[root@linux ~]# chmod 777 111.sh
[root@linux ~]# nohup ./111.sh &
[1] 3393
[root@linux ~]# nohup: appending output to “nohup.out”
[root@linux ~]# 
[root@linux ~]# 
[root@linux ~]# exit
如果你再次登入的话,再使用 ps -l 去查阅你的程序,会发现 111.sh 还在执行中喔!并不会被中断掉! 由于我们的程序最后会输出一个讯息,但是 nohup 和终端机其实无关了, 因此这个讯息的输出就会被导向『 ~/nohup.out 』,所以你才会看到上述指令中 如果你想要在背景工作在你注销后还能够继续的执行,那举使用 nohup 搭配 & 是不错的运作情境喔! 可以参考看看!
[root@linux ~]# ps -ef | grep 111.sh
root      3393     1  0 23:43 ?        00:00:00 /bin/bash ./111.sh
root      3445  3400  0 23:45 pts/0    00:00:00 grep 111.sh
[root@linux ~]# cat nohup.out 
I have slept 500 seconds.



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值