[root@study ~]#
nohup [
指令与
参数
]
<==
端机前景中工作
[root@study ~]#
nohup [
指令与
参数
] &
<==
端机背景中工作
有够好简单的指令吧!上述指令需要注意的是,
nohup
并不支持
bash
内½的指令,因此你的指令
必须要是外部指令才行。
我们来尝试玩一下底下的任务吧!
# 1.
编辑
一支
『睡
500
秒』的程序:
[root@study ~]#
vim sleep500.sh
#!/bin/bash
/bin/sleep 500s
/bin/echo "I have slept 500
seconds."
# 2.
到背景中去
行,并且立刻注
[root@study ~]#
chmod a+x sleep500.sh
[root@study ~]#
nohup ./sleep500.sh &
[2] 14812
[root@study ~]# nohup: ignoring input and appending output to `nohup.out'
<==
告知
这个讯
息!
[root@study ~]#
exit
如果你再次登入的话,再使用
pstree
去查阅你的½程,会发现
sleep500.sh
还在执行中喔!并不会被
中断掉!
这样了½意思了吗?由于我们的程序最后会输出一个讯息,但是
nohup
与终端机其实无关
了,
因此这个讯息的输出就会被导向『
~/nohup.out
』,所以你才会看到上述指令中,当你输入
nohup
后,
会出现那个提示讯息啰。
如果你想要让在背景的工作在你注销后还能够继续的执行,那么使用
nohup
搭配
&
是不错的运作
情境喔!
可以参考看看!
16.3
½程管理
本章一开始就提到所谓的『½程』的概念,包括½程的触发、子½程与父½程的相关性等等,
此外,
还有那个『½程的相依性』以及所谓的『殭尸½程』等等需要说明的呢!为什么½程管理这么重要呢?
这是因为:
.
首先,本章一开始就谈到的,我们在操作系统时的各项工作其实都是经过某个
PID
来达成的
(
包括你的
bash
环境
)
因此,能不能½行某项工作,就与该½程的权限有关了。
.
再来,如果您的
Linux
系统是个很忙碌的系统,那么当整个系统资源快要被使用光时,
您是否能够找出最
耗系统的那个½程,然后删除该½程,让系统恢复正常呢?
.
此外,如果由于某个程序写的不好,导致产生一个有问题的½程在内存当中,您又该如何找出他,然后½
他移除呢?
.
如果同时有五六项工作在您的系统当中运作,但其中有一项工作才是最重要的,
该如何让那一项重要的工
作被最优先执行呢?