우분투 10.10에서 upstart 서비스를 어떻게 비활성화합니까?


27

10.10에서는 sysvinit 대신 upstart가 사용되고 있습니다.

/etc/init/blah.conf에서 적절한 파일을 제거하여 원하지 않는 성가신 업 스타트 서비스를 제거 할 수 있습니다

그러나 이것은 어려운 방법입니다. 명령 줄을 통해 이러한 서비스를 선택적으로 켜고 끌 수 있도록 upstart를 어떻게 올바르게 구성합니까?

실용적인 예로, rcconf를 사용하여 gdm을 해제하기위한 여기에 나열된 답변은 더 이상 작동하지 않습니다. Ubuntu에서 부팅시 GDM이 실행되지 않도록하려면 어떻게해야합니까?


Nb. 우분투의 일부 버전에는 그래픽 데스크탑 메뉴에 '서비스'항목이있어이를 구성 할 수 있습니다. 그것은 내 존재하지 않습니다. 특히 명령 줄 솔루션을 찾고 있습니다.
Doug

가장 업데이트 된 답변은 askubuntu 입니다. 댓글도 읽어보세요!
Marcello Nuccio

2
이 작업은 이제 자동으로 시작하지 못하도록 작업 단락에 설명 되어 있습니다.
Marcello Nuccio

@Marcello 흠 ... 그 말에 요점이 있었습니까? '최신 업데이트 된 답변'은 여전히 ​​동일한 답변입니다. 파일을 제거하거나 파일의 처음 몇 줄을 수동으로 삭제하십시오.
Doug

최신 솔루션은 echo manual >> /etc/init/<service>.override이며 의견 및 공식 문서에서만 언급됩니다. 나는 그것을 쉽게 발견하지 못했기 때문에 여기에서 언급했습니다.
Marcello Nuccio

답변:


19

/etc/init.d를 보면 upstart를 통해 구성된 모든 서비스가 / lib / init / upstart에 대한 심볼릭 링크 일 뿐이므로 /etc/init.d에서 서비스를 제거하면 스크립트가 아닌 링크 만 제거됩니다. .

이것에 대한 인터페이스를 원한다면 유용한 명령 줄 도구를 제공하는 chkconfig패키지 ( apt-get install chkconfig)를 설치할 수 있습니다 .

# chkconfig --list
acpi-support              0:off  1:off  2:on   3:on   4:on   5:on   6:off
acpid                     0:off  1:off  2:off  3:off  4:off  5:off  6:off
alsa-mixer-save           0:off  1:off  2:off  3:off  4:off  5:off  6:off
anacron                   0:off  1:off  2:off  3:off  4:off  5:off  6:off
apache2                   0:off  1:off  2:on   3:on   4:on   5:on   6:off
apparmor                  0:off  1:off  2:off  3:off  4:off  5:off  6:off  S:on 
apport                    0:off  1:off  2:off  3:off  4:off  5:off  6:off
atd                       0:off  1:off  2:off  3:off  4:off  5:off  6:off
.... and so on ....

다음을 사용하여 특정 실행 수준에 대한 서비스를 활성화 / 비활성화 할 수 있습니다 (또는 켜거나 끌 수 있습니다).

# chkconfig -s <service> <state/runlevels>

예를 들면 다음과 같습니다.

# chkconfig -s gdm off

완전히 끄려면

# chkconfig -s gdm on

defaultsm으로 켜거나

# chkconfig -s gdm 34

실행 레벨 3과 4에서만 켜십시오.

일반적으로 RHEL 기반 시스템 (CentOS, Fedora 등)에서이 명령을 찾을 수 있습니다.

최신 정보

이것은 우분투와 gdm / kdm / 무엇이든 다릅니다.

gdm이 시작되면 upstart 설정 파일 /etc/init/gdm.conf를 호출합니다.

그런 다음이 파일은 / etc / X11 / default-display-manager를 참조하여 시스템의 기본 디스플레이 관리자인지 확인합니다.

/ etc / X11 / default-display-manager에는 다음이 포함됩니다.

/usr/sbin/gdm

이것을 다른 디스플레이 관리자로 바꾸거나 파일을 완전히 제거하면 gdm이 시작되지 않습니다.

/etc/init/gdm.conf 파일의 라인 :

[ ! -f /etc/X11/default-display-manager -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/usr/sbin/gdm" ] || { stop; exit 0; }

"/ etc / X11 / default-display-manager 파일이 존재하지 않거나 포함되어 있지 않으면 /usr/sbin/gdm종료합니다"라는 메시지입니다


작동하지 않았습니다. rcconf와 마찬가지로 chkconfig는 gdm을 실행 수준에서 시작될 서비스로 나열하지 않습니다. 그러나 다시 시작하면로드됩니다. chkconfig -s gdm off는 시작을 방해하지 않았습니다.
Doug

2
여기에 chkconfig가 사용하기에 적합한 도구가 아니라고 제안하는 링크가 있습니다 : ubuntuforums.org/showthread.php?t=1559266
Doug

나는 우분투의 시작과 리눅스의 일반적인 점을 결코 좋아하지 않았다. 그것은 항상 너무 지저분하고 어리석은 것처럼 보입니다. 언젠가 FreeBSD의 rcng를주십시오. 어쨌든-우분투의 디스플레이 관리자와 관련하여 편집 한 내용이 표시됩니다.
Majenko

업 스타트에 대한 세부 사항으로 편집 후 올바른 경우 +1
Doug

5

나는 항상 sysv-rc-conf 도구가 매우 유용 하다는 것을 알았습니다 . 매우 훌륭하고 사용하기 쉬운 인터페이스가 있습니다.

다음과 같이 설치하십시오.

sudo apt-get update
sudo apt-get install sysv-rc-conf

다음과 같이 사용하십시오.

sudo sysv-rc-conf

1
나는 그것이 시작 서비스를 위해 작동한다고 생각하지 않습니다 ..
Rajat Gupta

3

간단히 살펴보면 man 5 init더 적합한 솔루션을 찾을 수 있습니다. 간단한 예 : "foobar"라는 서비스가 있다고 가정 해 봅시다. 그러면 /etc/init/foobar.confupstart 구성으로 불리는 파일이있을 것 입니다. 이제 파일을 제거하거나 수정하고 싶지는 않지만이 서비스를 실행하고 싶지 않습니까? 그래서 장소 재정의 옆에 파일을 : /etc/init/foobar.override대신 (설명과와 선택적 헤더)를 포함 start on/ stop on라인이 하나 개의 단어로 라인을 넣습니다 manual. 이 방법으로 upstart에게 기본적으로을 사용하도록 지시 foobar.conf하지만 시작 정의를 재정 의하여 수동으로 시행 할 때만 해당 서비스를 시작하도록하십시오 (이 service foobar start예에서는).


2

내 "권장"및 "중지"행을 간단히 주석 처리하는 것이 좋습니다. 내가 원하는 프로그램의 자동 시작이 비활성화되어 있는지 확인하기 위해 "initctl show-config"를 실행할 때 나에게 잘 작동했습니다.


1

Upstart는 이벤트 중심의 init manager이며, 런레벨은 서비스 시작시기를 결정하는 주요 메커니즘이 아닙니다. 대신, 모든 종속성이 충족 될 때 서비스가 시작되므로 부팅 중에 더 큰 병렬 처리가 가능하여 부팅 프로세스 속도가 빨라집니다.

Ubuntu 11.04를 사용하여 /etc/init/gdm.conf 파일을 편집하고 모든 "start on"항목을 제거하여 GDM을 비활성화 할 수있었습니다. 내 사전 편집은 다음과 같습니다.

start on (filesystem
          and started dbus
          and (drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
               or stopped udev-fallback-graphics))
stop on runlevel [016]

여기 내 사후 편집이 있습니다.

start on
stop on runlevel [016]

1
옳은; 그러나 이것은 기본적으로 etc / init / gdm.conf 파일을 이동 / 제거하는 것보다 낫지 않습니다. 구성 파일을 수동으로 편집하는 것이이 작업을 수행하는 유일한 방법 인 것 같습니다.
Doug

1

해결책은 다음과 같습니다.

http://ubuntuforums.org/showpost.php?p=9416839&postcount=3

@ 매트 젠킨스

나는 우분투의 시작과 리눅스의 일반적인 점을 결코 좋아하지 않았다. 그것은 항상 너무 지저분 해 보인다. 언젠가 FreeBSD의 rcng를주십시오. 어쨌든-Ubuntu의 디스플레이 관리자와 관련하여> 내 편집 내용이 표시됩니다 ...

아치 리눅스에는 좋은 초기화 시스템이 있습니다. 그러나 systemd는 다른 초기화 시스템을 행성 밖으로 날려 버립니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.