php m grep event,php-如何杀死与30分钟以上的grep匹配的进程?
我有一組并行運行的進程.
有時有些閑蕩時間超出了腳本的預期范圍:
$time_start = microtime(true)
$max_run_time = 30 * 60; // 30 minutes, measured in seconds
while ((microtime(true)-$time_start) < $max_run_time) {
// do stuff, but quit after 30 minutes
}
我想殺死此腳本的舊進程,這些進程的時間已超過30分鐘.
我如何在命令行上做很多事情?
這是當前正在運行的進程的示例:
> ps aux | grep script.php
my_user 856 28.3 0.7 546152 234568 ? S 11:46 88:42 php /path/to/my/script.php
my_user 4931 28.2 1.2 708176 396476 ? R 07:03 168:06 php /path/to/my/script.php
my_user 6965 28.6 0.7 542132 230764 ? S 11:51 88:08 php /path/to/my/script.php
my_user 8411 28.3 0.6 536944 225392 ? S 11:47 88:27 php /path/to/my/script.php
my_user 9087 28.3 1.5 820720 509208 ? S 06:56 171:12 php /path/to/my/script.php
my_user 9095 27.3 1.1 693496 381992 ? S 06:56 164:59 php /path/to/my/script.php
my_user 11182 28.1 1.1 704948 393028 ? R 06:57 169:14 php /path/to/my/script.php
my_user 12490 27.9 0.7 553700 242444 ? S 11:35 90:32 php /path/to/my/script.php
my_user 14050 28.0 1.1 686380 374972 ? S 06:58 168:42 php /path/to/my/script.php
my_user 14051 27.9 1.5 828872 517364 ? S 06:58 168:14 php /path/to/my/script.php
my_user 14888 27.9 0.6 540208 228744 ? R 11:52 85:55 php /path/to/my/script.php
my_user 16412 27.0 0.9 612436 300828 ? S 11:48 84:01 php /path/to/my/script.php
my_user 17776 28.2 1.1 693748 382016 ? S 06:59 169:38 php /path/to/my/script.php
my_user 21159 28.2 1.5 825944 514560 ? R 07:00 169:02 php /path/to/my/script.php
my_user 21215 28.5 1.2 708172 396724 ? S 07:00 171:01 php /path/to/my/script.php
my_user 23615 27.3 0.9 632712 321224 ? S 11:24 91:36 php /path/to/my/script.php
my_user 26225 27.8 1.1 696316 384788 ? S 07:01 166:42 php /path/to/my/script.php
my_user 31541 28.6 1.5 829628 518124 ? S 07:02 170:46 php /path/to/my/script.php
my_user 31542 28.4 1.1 704476 393152 ? S 07:02 170:02 php /path/to/my/script.php
我可以使用`pkill -f“ php /path/to/my/script.php”殺死它們
但是我怎么能殺死舊的呢?
解決方法:
要獲取運行時間超過30分鐘的名為PROCESS_NAME的進程的列表,
可以發出以下awk命令:
ps ax -ocmd,pid,etime | awk '/PROCESS_NAME/{split($(NF),a,":");if(a[1]>30)print}'
僅獲取運行的pid
ps ax -ocmd,pid,etime | awk '/PROCESS_NAME/{split($(NF),a,":");if(a[1]>30)print $(NF-1)}'
您可以將其通過管道傳遞給xargs kill,如下所示:
ps ax -ocmd,pid,etime | awk '/PROCESS_NAME/{split($(NF),a,":");if(a[1]>30)print $(NF-1)}' \
| xargs kill
標簽:php,linux,grep,unix,kill
來源: https://codeday.me/bug/20191012/1898273.html
總結
以上是生活随笔為你收集整理的php m grep event,php-如何杀死与30分钟以上的grep匹配的进程?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 打开压缩文件提示损坏修复解决方法
- 下一篇: 福州PHP讲师招聘_“艺”起就业|招聘信