linux - Ubuntu Server如何统一开机启动管理(获取开机启动列表及某服务开机启动状态)?

查看:354
本文介绍了linux - Ubuntu Server如何统一开机启动管理(获取开机启动列表及某服务开机启动状态)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

  • 系统环境:阿里云ECS

  • 系统版本:Ubuntu 14.04.3

  • 问题: UbuntuSever下如何统一管理服务开机启动

Linux下有几种通用的开机启动方式(我理解的其实原理都类似)不过管理起来不太方便

/etc/rc.local
/etc/rcN.d/script_filenalme  # N 为启动级别

所以,除此以外各个发行版还有自己的管理工具或者脚本

# CentOS & Redhat
chkconfig srvice_name {on|off}    # CentOS6.x 以下版本
systemctl enable service_name     # CentOS7.x 以上版本

# ubuntu (Debain未查) 查到有以下2中方式
update-rc.d service_name defaults;    
sysv-rc-conf --level 345 service_name on;

疑惑的是,两种方式貌似都管理了一部分服务,但是在各自的方式中查不到,如:

  1. 默认开机启动的服务,使用sysv-rc-conf查不到:

    sysv-rc-conf --list | grep 'ssh\|cron'    # 结果只输出了服务名,没有显示在各个运行级别的状态

  2. 使用update-rc.d开启cron,提示不存在

    shell> update-rc.d cron defaults
    
    update-rc.d: warning: /etc/init.d/cron missing LSB information
    update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
    System start/stop links for /etc/init.d/cron already exist.

  3. 在当前运行级别下也查不到默认开启启动的服务

    ll /etc/rc$(runlevel|awk '{print $NF}').d/S*|grep 'cron\|ssh'  # 内容为空

  4. 使用sysv-rc-config命令查看,确实有类似ssh,cron等默认开机启动服务没有勾选

    sysv-rc-config

有没有哪位大神熟悉UbuntuServer的,给指点下,上面这些问题原因是什么,再UbuntuServer下如何统一管理服务开机


搞明白了,感觉有点乱~,我理解的大概如下:

Ubuntu自己搞了一种开机自启动管理机制叫UpStart, 同时之前的System-V init的机制也并未完全废弃,两种方式并存导致我之前疑惑,

判断依据

区分某一种服务是那种方式启动,可以查看 /etc/init/service_name.conf

(下面内容直接从原文粘过来改了)

  1. /etc/init 底下找不到該 .conf ,就歸 sysvinit 管。

  2. 执行命令initctl list若是由 upstart 啟動的服務,便會列出其狀態。

上链接,感兴趣的自己去看下吧

参考地址:UpStart

解决方案

initctl

这篇关于linux - Ubuntu Server如何统一开机启动管理(获取开机启动列表及某服务开机启动状态)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆