linux - 在没有 PID 的情况下终止在后台运行的 while 循环

标签 linux bash loops pid kill

我是 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"时可以看到输出;

有什么建议吗?

最佳答案

这是@James Brown 在评论中的回答。

键入 fg 将其置于前台并使用 ctrl-c 将其杀死是解决此问题的最快方法。

关于linux - 在没有 PID 的情况下终止在后台运行的 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45440237/

相关文章:

linux - 组合两个否定的文件检查条件(-f 和 -s)似乎返回不正确的结果

linux - 用于上传文件和执行 bash 命令的 HTML 表单

java - 来自 Raspberry OS 的 BacNet/IP 广播不工作

javascript - 生成时间戳日期范围之间的空数据 | JavaScript

java - 获取从明天到 60 天之后的所有日期,然后循环遍历它们

VM 中的 Linux -curl 无法下载 nvm 文件?

linux - 如何将变量添加到sed中的匹配表达式?

在expect命令中进行Bash数组变量扩展

linux - 有没有办法使 linux CLI IO 重定向持久化?

linux - shell 脚本 - for 循环 - 根据用户从文件输入的 grep 邮件 ID