【发布时间】:2018-01-08 11:06:57
【问题描述】:
我是 Linux 各个方面的初学者,所以请慢慢来。
我创建了一个在后台运行的“脚本”:
while true; do echo "I'm alive" >> alive.log ; done &
脚本的输出保存在用户主目录中的 alive.log 文件中。 问题是我不知道如何杀死循环,因为它正在填满我的磁盘空间,如果我想删除文件,那么循环将创建一个新文件并用我问过的文本“我还活着”填充它它要做。
我尝试使用:
ps - aux | grep while
或
ps - aux | grep alive
这两行的输出将为我提供我需要的 PID,但问题是脚本是一个循环,这意味着 PID 每次运行时都会改变(递归)所以我不能使用 PID 来杀死过程。
我也尝试过使用:
pkill while
killall while
两行的结果都是0(使用pkill while -c "0" 或killall while : "while: no process found" 时可以看到输出;
有什么建议吗?
【问题讨论】:
-
键入
fg将其置于前台并使用 ctrl-c 将其杀死。 -
... 或
kill %1。检查help kill -
输入
jobs,找到你的脚本(例如[1]+ Running ...),然后用kill %1(或[ ]中的任何数字)杀死它。 -
或
killall script name,而不是killall while -
如果我输入作业,我将有 0 个输出,不会显示任何行,因此我无法从那里获取任何信息。但是脚本仍在运行,因为我不断检查文件 alive.log 以查看它的大小以及何时删除它,以便我仍然有空间。