我的服务器怎么老这么慢,难道说是被挖矿了?linux开机启动项自查

良许Linux

共 2382字,需浏览 5分钟

 · 2020-01-04

e9bba4ce7ae631c98cd9449a5dbc935c.webp1e0a7ef5b3e1653fa5bdc57acec999be.webp


☞ 程序员进阶架构师必备资源免费送 ☜

上次闯了祸以后,一出问题老板第一个想到的就是我。


47d48a2c51e9eba9107f0e6cb05b1288.webp


但是这个事真的不是我的锅啊,幸亏我机智,拿出我的《计算机基础教程》一顿操作下来,发现了一个叫 minerd 的挖矿进程,占用了90%多的内存,看来要升值加薪了!


让我们一起来总结一下哪些地方能设开机自启动程序吧!


linux服务器开机启动项


以往的服务通常使用supervisord或者crontab的方式来守护或者定时执行。但是这些往往很容易发现,一些比较隐蔽的地方会被黑客加一些奇怪的进程,开机就自动跑,我们就必须具备福尔摩斯的能力。


用户自定义开机程序 /etc/rc.d/rc.local


000a40a6ae1b9c70e85e53b728a9a2a7.webp

  • 这些就是开机的时候会自动执行的脚本和命令了。这台是腾讯云的服务器,上面的进程一般是监控机器cpu内存使用率之类的程序
  • /etc/rc.local软链接到了/etc/rc.d/rc.local,所以写到哪个文件里都是一样的
  • 写在这个文件里的开机脚本都是默认后台执行的,不需要再加&符号了

自写脚本-登陆自动执行脚本(不是开机自动执行) /etc/profile

2ef7d28d91a6ad73590cf387e9d4b379.webp

  • 目录中存放的是一些应用程序所需的启动脚本,其中包括了颜色、语言、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/(前者是后者的软连接)下才可以
176c37289f79a5b7703bcdb44de01d32.webp
  1. 此目录下的脚本会被提供给service或者systemctl使用
  2. 一般这里面的脚本都必须支持传入这些参数start、stop、reload、restart、force-reload来达到启停目的,绝大多数的情况下,你会使用到start,stop,restart选项
  3. 当然了要使用init.d目录下的脚本,你需要有root权限或sudo权限。每个脚本都将被作为一个命令运行,每个脚本也至少需要755权限。

chkconfig 如何添加一个服务 
增加服务的步骤:
  1. 服务脚本必须存放在/etc/init.d/目录下;
  2. chkconfig --add servicename在chkconfig工具服务列表中增加此服务,此时服务会被在/etc/rc.d/rcN.d中赋予K/S入口了;
  3. chkconfig --level 35 mysqld on修改服务的默认启动等级。

38ae9dcc433f59684106211fff559a29.webp
  • 脚本文件前面务必添加如下三行代码,否侧会提示chkconfig不支持


告诉系统使用的shell,所以的shell脚本都是这样#!/bin/sh 分别代表运行级别,启动优先权,关闭优先权,此行代码必须 #chkconfig: 35 20 80 (自己随便发挥)此行代码必须#description: http serverbrbr
chkconfig –add 脚本文件名 操作后就已经添加了使用范例:
75a3b11496ba9e9ae0844775e040d84a.webp
运行级别

代表是何等级时可以在开机时自动运行此服务
823b54806807a0f48625c61eab977916.webp
需要说明的是,level选项可以指定要查看的运行级而不一定是当前运行级。对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。
  • 如果默认情况下,服务不应在任何运行级别中启动,则应使用-代替运行级别列表。
  • 通常自己的服务使用等级35就可以了,最多2345也就是chkconfig servicename on

ntsysv 类图形界面管理模式(RedHat特有)
Linux ntsysv命令用于设置系统的各种服务。
这是Red Hat公司遵循GPL规则所开发的程序,它具有互动式操作界面,您可以轻易地利用方向键和空格键等,开启,关闭操作系统在每个执行等级中,所要执行的系统服务。

这种方式不算通用,所以我这里就不赘述了,有兴趣可以移步Linux ntsysv:设置系统服务
总结
开机启动项
1. 添加脚本到或者命令 /etc/rc.d/rc.local2. 先把脚本放到/etc/rc.d/init.d下,再使用chkconfig servername on命令添加2345运行级别到开机启动项(脚本写的规则见详情)3. ntsysv不常用可以忽略
使用密码登陆时自动运行把脚本放到/etc/profile.d/下
只要有一个人能获得帮助,小熊就会继续努力喜欢就让我们一起玩耍吧不用背锅啦!开心,话说为什么每次出问题老板都先想到的是我呢?

b2f9b3c928fc314eeb002d0f979bb302.webp


-------------------------
知乎:良许LinuxB站:程序员良许抖音:良许微博:良许Linux


本公众号全部博文已整理成一个目录,请在公众号里回复「m」获取!


推荐阅读:

赞!这款国产终端工具,好用到爆!

看完这篇还不了解 Nginx,那我就哭了!

B站收藏 6.1w+!GitHub 标星 3.9k+!这门神课拯救了我薄弱的计算机基础


5T技术资源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,单片机,树莓派,等等。在公众号内回复「1024」,即可免费获取!!


浏览 33
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报