linux kill杀不掉进程?
linux进程kill不掉
一是进程已经成为僵死进程,当它的父进程将它回收或将它的父进程kill掉即可在ps输出看不到了;
二是进程正处在内核状态中,Linux进程运行时分内核和用户两种状态,当进程进入内核状态后,会屏蔽所有信号,包括SIGKIL,所以这个时候kill -9也变得无效了。
linux的system进程能关掉吗?
Linux的system进程是一个非常重要的系统进程,用于执行系统调用和运行程序。因此,一般情况下不建议关闭system进程。如果强制关闭system进程,可能会导致系统崩溃或出现不可预知的问题。如果需要停止某个程序或进程,可以使用kill命令或其他适当的工具来处理。总之,关闭system进程是一个非常危险的操作,应该谨慎处理。
python哪个函数启动进程和关闭进程?
任何一种编程语言,启动进程和关闭进程都是跟操作系统相关的操作,python中与操作系统打交道的话,推荐使用os模块。
os.system() 函数可以启动一个进程,执行完之后返回状态码。
os.fork() 复制一个进程,如果是子进程返回0,如果是父进程返回子进程的pid,使用这个函数的时候,建议你学习一下linux编程的知识。
os.popen 以管道的方式创建进程。
os.spawnl 也可以创建进程,并能指定环境变量。
os.kill(pid, sig) 关闭一个进程,pid是进程号,sig是信号。与fork配合使用,例如你刚才用fork创建了一个子进程,它的pid是11990, 那么调用 os.kill( 11990, signal.CTRL_BREAK_EVENT) 就以ctrl+c的方式杀死了这个进程。
另外还有一个模块multiprocessing,这个模块封装了很多创建进程和进程间通信的操作,可以让你发挥多核的威力。
linux如何清理僵尸进程?
回答这个问题前,我们先来简单了解下什么是僵尸进程。
1、僵尸进程通俗理解就是,子进程因为各种原因死掉了,但是父进程没及时去关心死掉的子进程(资源回收),而导致子进程称为了孤魂野鬼(僵尸进程)。
2、僵尸进程对系统有什么危害呢?不清理可不可行?
简单来讲,如果系统中有少量的僵尸进程(自己维护的系统有10个左右的时候没有很在意),不打紧,实际使用中没有发现有什么异常。但是如果僵尸进程比较多,则需要及时清理。因为每一个僵尸进程都会占据一个进程号,而系统的进程号又是有限的,别哪一天突然产生好多僵尸进程,导致系统不能再正常分配进程号,创建不了子进程,那系统就要崩溃了。
3、在操作系统中如何查看僵尸进程呢?(以Linux为例)
TOP
ps aux | grep Zs | grep -v grep
ps -ef | grep defunct
ps -ef | grep defunct | grep -v grep | wc -l --查看僵尸进程
4、如何清理僵尸进程呢?
找到该defunct僵尸进程的父进程,将该进程的父进程杀掉,则此defunct进程将自动消失
但是查杀父进程的时候,强烈建议lsof -p 查看下父进程是哪个程序的进程,断然不可漠然执行。(业务没有什么危害,也许会导致业务宕机)。如果整体没有太大把握,僵尸进程又非常多的情况下,可以申请停机窗口进行服务器的重启。
以上是个人实际工作的一些方法,方法可能非常多,起到一个开拓思路的作用吧。希望对题主有所帮助。