我是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的大小不再增长.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。