在学习使用"&"使进程在后台执行时,写了脚本文件 ~/testjob ,
脚本内容如下:
#! /bin/bash
while true
do
echo -n `date "+%Y-%m-%d %H:%M:%S"` >> ~/jobs.txt
echo " I am groot!" >> ~/jobs.txt
sleep 1
done
Linux系统为RHEL7,使用xhell连接登录到root后,执行命令:
# sh ~/testjob &
在RHEL7本机上以root登陆,打开终端,执行命令:
# tail -f ~/jobs.txt
显示每个隔一秒输出一行,内容为: 时间 + I am groot!
返回到xshell,将连接关闭后,发现在RHEL7中的 tail -f 的输出仍在进行,并未停止.
新建终端,连接到RHEL7后,使用ps命令查找,但找不到任何 testjob的进程在运行.
这种情况下,如何使tail -f 的输出终止呢?
在你的描述中
返回到xshell,将连接关闭后,发现在RHEL7中的 tail -f 的输出仍在进行,并未停止.
在这一步,请保持观察一会,应该会停止输出,而且 testjob 也会被 kill
你执行
sh ~/testjob &
这个命令,只是让这个 job 在你当前登录的 tty 下保存后台运行,只要不关闭这个连接,会一直运行下去, 当你使用 exit 退出这个 tty 的时候,这个 tty 产生的进程会被杀掉,但是如果你直接关闭, 可能会由于回话机制还存活一段时间。