系统启动方式:SysV / UpStart / Systemd 的区分

目录

Sysv/UpStart/Systemd的区分

Systemd&&Sysvinit

--------------------------------------------------------------

#以下两条命令,等效

stat /proc/1/exe

ps -p 1 -o comm=

pstree 指令,更方便 ?

System has not been booted with systemd as init system (PID 1). Can‘t operate  https://blog.csdn.net/ken2232/article/details/132529761

pstree 指令  https://blog.csdn.net/llffss/article/details/129641791 

====================================

什么是 systemd?

 https://baijiahao.baidu.com/s?id=1774668356049722043&wfr=spider&for=pc

systemd 是一个系统和服务管理器,于 2010 年首次推出,用于取代传统的 System V 初始化系统。它旨在提高启动速度并更有效地管理系统服务。如今,systemd 是许多流行 Linux 发行版的默认初始化系统,包括 Ubuntu、Fedora 和 Red Hat Enterprise Linux(RHEL)。

Sysv/UpStart/Systemd的区分

Linux系统目前存在的三种系统启动方式所对应的配置文件目录分别为:

  1. SysVinit:/etc/init.d目录;
  2. UpStart: /usr/share/upstart目录;
  3. Systemd:/usr/lib/systemd目录;


但是大多数系统上,都会存在多个类似的目录,因此不能简单地根据是否存在相应的配置目录的方式来判断系统的启动方式,这里推荐的方式上是根据 init进程号1 所对应的可执行文件来判断,如:

Sysv

$ sudo stat /proc/1/exe
  File: /proc/1/exe -> /usr/sbin/init
  Size: 0             Blocks: 0          IO Block: 1024   symbolic link
Device: 14h/20d    Inode: 23065       Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2023-08-27 18:46:17.707999957 -0400
Modify: 2023-08-27 18:46:17.699999957 -0400
Change: 2023-08-27 18:46:17.699999957 -0400
 Birth: -

$  /usr/sbin/init --version
SysV init version: 2.96

UpStart

查看可执行文件:

# stat /proc/1/exe
  File: ‘/proc/1/exe’ -> ‘/sbin/init
  Size: 0           Blocks: 0          IO Block: 1024   symbolic link
Device: 27h/39d Inode: 30687       Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-11-01 20:54:17.438872888 -0700
Modify: 2017-11-01 04:36:41.247322141 -0700
Change: 2017-11-01 04:36:41.247322141 -0700
 Birth: -

可以看出这里使用的是init,但具体是哪个还是不够清晰,因此再向下看:

# /sbin/init --version

init (upstart 1.12.1)
Copyright (C) 2006-2014 Canonical Ltd., 2011 Scott James Remnant

This is free software; see the source for copying conditions.  There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

所以最后可以确定使用的是UpStart。

Systemd

查看可执行文件:

# stat /proc/1/exe
  文件:/proc/1/exe -> /lib/systemd/systemd
  大小:0          块:0          IO 块:1024   符号链接
设备:4h/4d    Inode:145661      硬链接:1
权限:(0777/lrwxrwxrwx)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2017-11-02 06:06:35.280148731 +0000
最近更改:2017-11-02 04:39:59.609176432 +0000
最近改动:2017-11-02 04:39:59.609176432 +0000
创建时间:-

可以看出这里使用的是systemd,其详细信息如下:

# /lib/systemd/systemd --version
systemd 232
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN
参考文档

注:

1. --version 给出的信息,可能是取决于 linux发行者的自定义信息。

因此,不同的发行社区,所给出的信息也是不一样的。

2. init文件所在的目录,不同的发行版,也可能是不一样的。


链接:https://www.jianshu.com/p/43933d125075

systemd的使用以及与sysvinit的区别

 https://blog.csdn.net/drdairen/article/details/51437574

摘录:

systemd被设计用来改进sysvinit的缺点,它和ubuntu的upstart是竞争对手,预计会取代它们。systemd的很多概念来源于苹果的launchd。创始人Lennart是redhat员工,但systemd不是redhat项目。

systemd的目标是:尽可能启动更少进程;尽可能将更多进程并行启动。systemd尽可能减少对shell脚本的依赖。

传统sysvinit使用inittab来决定运行哪些shell脚本,大量使用shell脚本被认为是效率低下无法并行的原因。

systemd使用了Linux专属技术,不再顾及POSIX兼容,一度谣传Debian为了它的BSD项目将不会使用systemd。

。。。。。。省略 。。。。。。

Systemd&&Sysvinit

问题

    System has not been booted with systemd as init system (PID 1). Can’t operate
    原因:您的linux系统没有使用systemd

在命令穿那个口输入

ps -p 1 -o comm=

输出结果

systemd/sysv

根据对应的系统使用操作命令去进行操作.

服务操作命令:
Systemd command                        Sysvinit commmand
systemctl start service_name         service service_name start
systemctl stop service_name         service service_name stop
systemctl restart service_name     service service_name restart
systemctl status service_name      service service_name status
systemctl enable service_name     service service_name enable
systemctl disable service_name    service service_name disable

————————————————
版权声明:本文为CSDN博主「不教而诛」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43801500/article/details/126655384

参考:

 System has not been booted with systemd as init system (PID 1). Can‘t operate

  https://blog.csdn.net/ken2232/article/details/132529761?spm=1001.2014.3001.5502

systemd是做什么的?在开机的时候它做了什么?systemd和sysVinit,upstart有什么区别?

 https://www.zhihu.com/question/27547618?sort=created

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值