linux 杀掉后台运行脚本,linux – 在没有PID的情况下杀死在后台运行的while循环...

我是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时可以看到输出,而-c“0”或killall时:“while:没有找到进程”;

有什么建议吗?

解决方法:

我在一个名为while.sh的脚本文件中编写了这个句子,并通过shell运行它:

[edemon@CentOS workspace]$./while.sh

[edemon@CentOS workspace]$

没有PID.

我用top命令工具搜索我的while.sh,它告诉我:

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

4036 edemon 20 0 5268 756 436 R 97.3 0.0 0:07.93 bash

2469 root 20 0 94412 29m 10m S 7.8 2.0 1:49.19 Xorg

2788 edemon 20 0 74300 12m 10m S 1.9 0.9 1:38.79 nm-applet

4040 edemon 20 0 2708 1072 796 R 1.9 0.1 0:00.01 top

while的父亲进程是bash,所以我杀了4036. alive.log的大小不再增长.

标签:bash,loops,linux,kill,pid

来源: https://codeday.me/bug/20190701/1349397.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值