내가 할 때
ll /proc/1/exe
알겠어요
lrwxrwxrwx. 1 root root 0 Oct 16 11:28 /proc/1/exe -> /usr/lib/systemd/systemd
systemd
이는 대신 데몬을 실행하고 있음을 의미합니다 init
.
하지만 내가 나열할 때
ll /etc/init.d/
여전히 일부 실행 중인 서비스가 표시됩니다 init
(출력이 제거됨).
-rwxr-xr-x 1 root root 2269 Apr 22 2017 acpid*
-rwxr-xr-x 1 root root 5336 Apr 15 2016 alsa-utils*
-rwxr-xr-x 1 root root 2014 Dec 29 2014 anacron*
-rwxr-xr-x 1 root root 4335 Mar 23 2018 apparmor*
-rwxr-xr-x 1 root root 2802 Jan 3 2018 apport*
-rwxr-xr-x 1 root root 2134 Jul 7 2015 autofs*
-rwxr-xr-x 1 root root 2401 Nov 5 2015 avahi-daemon*
-rwxr-xr-x 1 root root 2968 Mar 2 2016 bluetooth*
-rwxr-xr-x 1 root root 1275 Jan 20 2016 bootmisc.sh*
-rwxr-xr-x 1 root root 2125 Apr 27 2016 brltty*
-rwxr-xr-x 1 root root 1904 Nov 18 2015 cgroupfs-mount*
-rwxr-xr-x 1 root root 3807 Jan 20 2016 checkfs.sh*
-rwxr-xr-x 1 root root 1098 Jan 20 2016 checkroot-bootclean.sh*
-rwxr-xr-x 1 root root 9353 Jan 20 2016 checkroot.sh*
-rwxr-xr-x 1 root root 1232 Aug 9 09:32 console-setup.sh*
-rwxr-xr-x 1 root root 3049 Apr 6 2016 cron*
-rwxr-xr-x 1 root root 2804 Mar 28 2018 cups*
-rwxr-xr-x 1 root root 1961 Feb 14 2016 cups-browsed*
-rwxr-xr-x 1 root root 2813 Dec 2 2015 dbus*
-rw-r--r-- 1 root root 1195 Oct 7 06:13 .depend.boot
-rw-r--r-- 1 root root 2459 Oct 7 06:13 .depend.start
-rw-r--r-- 1 root root 1926 Oct 7 06:13 .depend.stop
더 많은 서비스를 나열할수록
ll /lib/systemd/system
누군가 왜 그렇게 많은 서비스가 실행되고 있는지 말해 줄 수 있습니까 init
?
답변1
systemd
시스템에서만 실행되며 를 포함한 모든 서비스가 시작 됩니다 /etc/init.d
.
init
레거시("sysvinit" 또는 "System V init"라고도 함)를 사용하는 이전 시스템과의 호환성을 위해 systemd는 레거시 init 스크립트를 사용하여 서비스를 시작할 수 있는 메커니즘을 구현합니다.
이 호환성 레이어는 다음으로 구성됩니다.systemd-sysv-생성기, 오래된 초기화 스크립트를 찾아 기본 시스템 서비스 단위로 래핑합니다. (예를 들어 /etc/init.d/avahi-daemon
내부에 실행 중인 래퍼가 있는 래퍼를 찾아 생성하고 중지 및 다시 로드 작업에 대해서도 마찬가지로 기존 init 스크립트 작동 방식을 시뮬레이션합니다.)/run/systemd/system/avahi-daemon.service
ExecStart=
/etc/init.d/avahi-daemon start
일부 배포판에서는 sysvinit과의 호환성을 높이기 위해 sysvinit service
및 sysvinit 와 같은 실행 파일용 래퍼도 제공합니다 .chkconfig
systemd에 정의된 서비스를 확인하려면 systemctl
(모든 유닛 파일 표시), systemctl list-units
(메모리의 활성 유닛 표시)와 같은 명령을 사용하거나 systemd에 Pass 래퍼가 존재하므로 레거시 초기화 서비스 중 하나에서 이러한 명령을 사용할 수 있습니다.systemctl status service
답변2
이는 실행 중인 서비스가 아니라 실행 가능한 스크립트입니다.