当系统中出现了僵尸进程时,我们是无法通过 kill 命令把它清旦袜塌除掉的。模圆但是我们可以杀死它的父进程,让它变成孤儿进程,并进一步被系统中管理孤儿进程的进程收养并清理。
方法/步骤要关闭进程,我们首先要打开类似于windows系统下面的“任务管理器”程序,在Ubuntu系统下“任务管理器”叫做“系指局统监视器”,他们的功能基本类似,不过Ubuntu下面的“系统监视器”比windows的任务管理器功能更强大。
有两种方法可以打开“系统监视器”,下面我们分别说明
打开系统监视器方法一
依次点击“system”--->“Administration”----->“System Monitor”,如下图所示:
打开系统监视器方法二
对于喜欢命令的朋友来说,可以用下面的命令打开系统监视器,打开终端命令窗口,然后输入以下命令执行:
gnome-system-monitor
系统监视器打开后如下图所示,默认的页面我们可以看到关于系统的配置情况
我们点击“Processes”,进入到进程列表界面,现在感觉到和windows下的任务管理器很相似缺模吧。
下面我们就进入我们的正题,结束进程,一般结束之前自己一定要对这个进程有所了解,知道它具体的功能作用,不然结束后,可能会引起系统的不稳定甚至死机。
因为我这个电脑上面没有蓝牙模块,但是进程伏逗缓里面有提供蓝牙模块的服务功能,所以我们就以这个进程为例来作为我们结束的对象,我们选择这个进程bluetooth-applet,如下图所示:
在bluetooth-applet进程上面点鼠标右键,之后会d出如下关于对进程 *** 作的一些菜单,我们这里要彻底的结束bluetooth-applet进程,所以我们选择“kill process”
选择并点击“kill process”后,会d出结束进程的确认提示框,如下图所示,我们选择选择“kill process”就可以结束bluetooth-applet进程了。
结束bluetooth-applet进程后,我们再看进程列表里面已经没有bluetooth-applet进程了, *** 作非常简单,也和windows系统下面结束进程的方法类似 -_-
这里所需要的python依赖项相对较少,只需要安装下schedule即可(这个包很小散猜扮,无需镜像也会很快装完),这个是定时任务时会用到的,直接在运行的python环境下执行以下命令:pip install schedule
1
1
二、重启任务
这一部分我们将贴出代码,大致逻辑是先检测到我们要重启的程序id,然后kill掉之后,进行重新启动,代码如下兆带:
import os,sys,schedule
import subprocess,time
def restart_frp():
child =subprocess.Popen(["pgrep","-f","xxx"],stdout=subprocess.PIPE,)
pid=child.stdout.read().decode("utf-8").strip()
#print(pid)
if pid!="":
os.system("kill -9 "+pid)
child2=subprocess.Popen("xxx",stdout=subprocess.PIPE,shell=True)
print(time.strftime("%Y-%m-%d %H:%M",time.localtime()))
if __name__ == '__main__':
restart_frp()
schedule.every().hour.do(restart_frp)
while True:
schedule.run_pending()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
其中的xxx均为你要 *** 作的程序名称
三、bug记录
自己在运行中若遇到如下错误:冲灶在这里插入图片描述
则执行如下 *** 作:
第一步,执行命令
ls -l /bin/sh
1
1
若显示结果为:/bin/sh ->dash,那就执行第二步:
sudo dpkg-reconfigure dash (出现窗口选择no)
1
1
第三步,再次执行命令:
ls -l /bin/sh
1
1
显示为 /bin/sh ->bash后,重新运行程
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)