我的服务器怎么老这么慢,难道说是被挖矿了?linux开机启动项自查
“今天又是想让老板刮目相看的一天——编程三分钟”
上次闯了祸以后,一出问题老板第一个想到的就是我。。
但是这个事真的不是我的锅啊,幸亏我机智,拿出我的《计算机基础教程》一顿操作下来,发现了一个叫 minerd 的挖矿进程,占用了90%多的内存,看来要升值加薪了!
让我们一起来总结一下哪些地方能设开机自启动程序吧!
linux服务器开机启动项
以往的服务通常使用supervisord或者crontab的方式来守护或者定时执行。但是这些往往很容易发现,一些比较隐蔽的地方会被黑客加一些奇怪的进程,开机就自动跑,我们就必须具备福尔摩斯的能力。
用户自定义开机程序 /etc/rc.d/rc.local
这些就是开机的时候会自动执行的脚本和命令了。这台是腾讯云的服务器,上面的进程一般是监控机器cpu内存使用率之类的程序
/etc/rc.local
软链接到了/etc/rc.d/rc.local
,所以写到哪个文件里都是一样的写在这个文件里的开机脚本都是默认后台执行的,不需要再加
&
符号了
自写脚本-登陆自动执行脚本(不是开机自动执行) /etc/profile
目录中存放的是一些应用程序所需的启动脚本,其中包括了颜色、语言、less、vim及which等命令的一些附加设置。
当一个用户登录Linux系统或使用su -命令切换到另一个用户时,也就是Login shell 启动时,首先要确保执行的启动脚本就是
/etc/profile
。(只有Login shell
启动时才会运行/etc/profile
这个脚本,也就是需要输入账号和密码的时候,而Non-login shell
不会调用这个脚本)这些脚本文件之所以能够 被自动执行,是因为在
/etc/profile
中使用一个for循环语句来调用这些脚本。而这些脚本文件是用来设置一些变量和运行一些初始化过程的。
chkconfig 命令设置,可以设置优先级别
要说这种方式就要先介绍/etc/rc.local/init.d
目录,要使用chkconfig来管理自动启动的脚本,第一件事就是将启动文件cp到 /etc/init.d/或者/etc/rc.d/init.d/(前者是后者的软连接)下才可以
此目录下的脚本会被提供给service或者systemctl使用
一般这里面的脚本都必须支持传入这些参数
start、stop、reload、restart、force-reload
来达到启停目的,绝大多数的情况下,你会使用到start,stop,restart
选项当然了要使用init.d目录下的脚本,你需要有root权限或sudo权限。每个脚本都将被作为一个命令运行,每个脚本也至少需要755权限。
chkconfig 如何添加一个服务
增加服务的步骤:
服务脚本必须存放在/etc/init.d/目录下;
chkconfig --add servicename
在chkconfig工具服务列表中增加此服务,此时服务会被在/etc/rc.d/rcN.d中赋予K/S入口了;chkconfig --level 35 mysqld on
修改服务的默认启动等级。
脚本文件前面务必添加如下三行代码,否侧会提示chkconfig不支持
告诉系统使用的shell,所以的shell脚本都是这样
#!/bin/sh
分别代表运行级别,启动优先权,关闭优先权,此行代码必须
#chkconfig: 35 20 80
(自己随便发挥)此行代码必须
#description: http server
chkconfig –add 脚本文件名 操作后就已经添加了
使用范例:
运行级别
代表是何等级时可以在开机时自动运行此服务
需要说明的是,level选项可以指定要查看的运行级而不一定是当前运行级。对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。
如果默认情况下,服务不应在任何运行级别中启动,则应使用-代替运行级别列表。
通常自己的服务使用等级35就可以了,最多2345也就是
chkconfig servicename on
ntsysv 类图形界面管理模式(RedHat特有)
Linux ntsysv命令用于设置系统的各种服务。
这是Red Hat公司遵循GPL规则所开发的程序,它具有互动式操作界面,您可以轻易地利用方向键和空格键等,开启,关闭操作系统在每个执行等级中,所要执行的系统服务。
这种方式不算通用,所以我这里就不赘述了,有兴趣可以移步Linux ntsysv:设置系统服务
总结
开机启动项
1. 添加脚本到或者命令 /etc/rc.d/rc.local
2. 先把脚本放到/etc/rc.d/init.d
下,再使用chkconfig servername on
命令添加2345运行级别到开机启动项(脚本写的规则见详情)
3. ntsysv不常用可以忽略
使用密码登陆时自动运行
把脚本放到
/etc/profile.d/
下
只要有一个人能获得帮助,小熊就会继续努力
喜欢就让我们一起玩耍吧
不用背锅啦!开心,话说为什么每次出问题老板都先想到的是我呢?