Linux下让进程不再被拉起

Linux下为了防止应用挂掉,我们会设置服务进程来拉起这些应用。但某些流氓软件也会利用该机制使得它们被杀掉后能再被拉起来。本文讲述让这些进程不再被拉起的方法。

 比如,有名称为recordmain.bin的进程,使用kill -9 杀掉它后,过几秒发现它又重新启动起来了。

用ps 命令可以看到它的进程id是2431,父进程id是611。说明该进程是由进程id为611的进程拉起来的。用ps命令可以看到该进程名称为main.sh,其父进程id为1。这说明了main.sh进程拉起了recordmain.bin进程。

我们继续对main.sh执行 kill-9 命令,结果发现过几秒main.sh又自动启动起来了 ,说明进程id为1的进程把它拉起来了。

我们继续使用ps -ef命令查看,可以看到进程id为1的进程是 /sbin/init进程。 /sbin/init是第一个进程,它是Linux系统初始化的第一个用户级进程。它的任务是读取/etc/inittab文件,初始化系统环境,并根据inittab文件中指定的运行级别启动其他进程和服务。

目前Linux流行使用Systemd来守护系统,而systemctl是 Systemd 的主命令,用于管理系统。

列出所有服务的运行状态:

systemctl

可以看到有一项:

可以看到有个recordmain.service的服务。查看该服务状态

systemctl status recordmain.service

从CGroup可以看出就是这个recordmain.service服务启动了main.sh进程,然后main.sh又启动了recordmain.bin,所以要想让recordmain.bin不再被开机,可以执行下面命令:

#停止服务
systemctl stop recordmain.service

#关闭该服务自启
systemctl disable recordmain.service

#冻结该服务启动脚本
systemctl mask recordmain.service

执行完上述命令后,我们会发现进程recordmain.bin不再被拉起来了。

参考:

Linux之systemd服务配置及自动重启

Linux系统开机启动项清理

systemctl命令详解

centos7的启动流程(systemctl)

【Linux】Linux开机时顺序启动项目并保证项目不挂机(systemctl+supervisor)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值