查看我被谁killall了

本文介绍了一种通过Python脚本对系统killall命令进行封装的方法,旨在追踪并记录进程被终止的情况。该脚本能够自动记录killall命令的执行时间及参数,并将日志保存到指定位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在项目过程中发现有人在kill我的进程。查找起来太麻烦了。。所以就想了一个办法,在系统的killall基础上封装一层。
原理:
用python脚本写一个兼容性的killall
把系统原来的killall放到/bin/sys/killall里面
使用方式
tail -f /var/log/killall_log

脚本内容如下:
#!/usr/bin/python
# -*- coding:utf-8 -*-
import os
import sys
from time import strftime,gmtime
if os.path.exists('/var/log/killall_log') and int(os.path.getsize('/var/log/killall_log'))>1024*1024*1024:
killall_log=open('/var/log/killall_log', 'w')
else:
killall_log=open('/var/log/killall_log', 'a+')
killall_str=open("/proc/"+str(os.getppid())+"/cmdline").read()+" exec killall"
killall_cmd="/bin/sys/killall"

for i in range(1, len(sys.argv)):
killall_cmd=killall_cmd+" "+str(sys.argv[i])
killall_str=killall_str+" "+str(sys.argv[i])
killall_str=killall_str+" ->"+strftime("%Y-%m-%d %H:%M:%S", gmtime())+"\n"
killall_log.write(killall_str)
killall_log.close()
os.system(killall_cmd)
主要知识背景
python如何获取自己的父pid。。系统调用就OK了
/proc文件中根据pid找到进程的命令行参数(/proc/pidxx/cmdline)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值