Linux系统目前存在的三种系统启动方式所对应的配置文件目录分别为:
1. SysVinit:/etc/init.d
目录;
1. UpStart: /usr/share/upstart
目录;
1. Systemd:/usr/lib/systemd
目录;
但是大多数系统上,都会存在多个类似的目录,因此不能简单地根据是否存在相应的配置目录的方式来判断系统的启动方式,这里推荐的方式上是根据init进程号1所对应的可执行文件来判断,如:
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
参考文档
- 浅析Linux初始化init系统:
- StackExchange上的相应问答:
how to find out if a system uses sysv upstart or systemd initsystem
网友评论