目录
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系统目前存在的三种系统启动方式所对应的配置文件目录分别为:
- SysVinit:/etc/init.d目录;
- UpStart: /usr/share/upstart目录;
- 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 RemnantThis 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有什么区别?