17370845950

LINUX怎么查看一个服务是否开机自启_LINUX服务自启动状态查询方法
答案:查看Linux服务开机自启需先判断初始化系统类型。使用ps -p 1确认是systemd还是SysVinit。若为systemd,执行systemctl is-enabled 服务名.service,返回enabled表示已启用;可结合systemctl list-unit-files --type=service | grep enabled查看所有自启服务。若为SysVinit,使用chkconfig --list 服务名查看运行级别状态,或检查/etc/rc.d/rc.local是否有启动命令。还可通过ps aux | grep 服务名确认运行状态,或查看/etc/systemd/system/multi-user.target.wants/目录软链接及crontab @reboot任务辅助判断。

在Linux系统中,查看某个服务是否设置为开机自启,主要取决于你使用的系统初始化方式。目前主流的是systemd(大多数现代发行版如CentOS 7+、Ubuntu 16.04+、Debian 9+等),也有部分旧系统使用SysVinit。以下是常用的方法。

使用systemctl命令(适用于systemd系统)

如果你的系统使用systemd,可以通过systemctl命令来查看服务的自启动状态。

  • 查看某个服务是否开机自启:
    systemctl is-enabled 服务名.service
    例如:systemctl is-enabled sshd.service
    返回 enabled 表示已设置开机自启,disabled 表示未启用。
  • 列出所有开机自启的服务:
    systemctl list-unit-files --type=service | grep enabled
  • 查看服务当前运行状态(是否正在运行):
    systemctl status 服务名.service

传统SysVinit系统(较老版本Linux)

对于仍在使用SysVinit的系统,可以使用chkconfig或直接查看/etc/rc.d/rc.local等脚本。

  • 使用chkconfig查看:
    chkconfig --list 服务名
    例如:chkconfig --list httpd
    查看对应运行级别下是否标记为“on”。
  • 查看rc.local(部分服务手动添加):
    打开文件:cat /etc/rc.d/rc.local/etc/rc.local,检查是否有启动服务的命令。

通用方法:结合ps与开机脚本辅助判断

如果不确定初始化类型,也可以通过以下方式辅助判断:

  • ps aux | grep 服务名确认服务当前是否在运行。
  • 检查是否有自定义启动脚本写入crontab -l(如@reboot任务)。
  • 查看/etc/systemd/system/multi-user.target.wants/目录下的软链接,存在即表示该服务被设为开机启动。

基本上就这些。大多数情况下,systemctl is-enabled 服务名就能快速判断服务是否开机自启。确认你的系统使用systemd还是SysVinit是关键。输入ps -p 1可查看进程1是systemd还是init,从而判断初始化系统类型。