저는 Linux init 시스템을 이해하려고 노력하고 있습니다. 어떻게 세 가지 경쟁 시스템이 있는지 이해가 안 되지만 이 service
명령은 모든 시스템에서 작동하는 것 같습니다.
서비스 명령 man
페이지에서:
서비스는 System V init 스크립트 또는 upstart 작업을 실행합니다.
저는 루분투 16.4를 사용하고 있습니다.생각하다systemd는 기본 초기화 시스템입니다( pstree
systemd를 루트 프로세스로 표시). Systemd는 서비스 매뉴얼 페이지에 언급되어 있지 않습니다. 하지만 저는 여전히 이를 스크립트를 시작하고 중지하는 데 사용합니다.
왜 이런지 설명할 수 있는 사람이 있나요?
답변1
일부 배포판에서는 레거시 명령이 계속 작동하도록 호환성 스크립트를 포함하도록 선택합니다. 예를 들어 Debian 8의 경우입니다.
root@matrix:~# which service
/usr/sbin/service
root@matrix:~# file /usr/sbin/service
/usr/sbin/service: POSIX shell script, ASCII text executable, with very long lines
root@matrix:~# grep upstart /usr/sbin/service
# Operate against system upstart, not session
&& initctl version 2>/dev/null | grep -q upstart \
# Upstart configuration exists for this job and we're running on upstart
# Action is a valid upstart action
root@matrix:~# grep systemd /usr/sbin/service
is_systemd=
if [ -d /run/systemd/system ]; then
is_systemd=1
# On systems using systemd, we just perform a normal restart:
# A restart with systemd is already a full restart.
if [ -n "$is_systemd" ]; then
# When this machine is running systemd, standard service calls are turned into
if [ -n "$is_systemd" ]
# the systemd service file does not (yet) support reload for a