모든 런레벨에서 서비스가 시작되지 않습니까?


61

foo현재 런레벨 3 이상 에서 시작 하는 서비스 가 있습니다 . 을 사용하지 않고 어떻게하지 못하게 할 수 있습니까? update-rc.d foo stop 3 .(올바로 이해하면) 각 실행 수준 변경시 서비스를 끕니다.

(즉, 내가 런레벨 1에 있고 활성화 된 foo경우 런레벨 3으로 변경하면 비활성화됩니다.)

데비안 GNU / 리눅스 Lenny 실행

답변:


57

"중지"용어는 데몬의 시작을 방해하지 않고 지정된 런레벨에 들어가는 동안 데몬을 종료합니다.

단일 실행 수준에서 서비스 / 데몬을 제거하려면update-rc.d bei freiheit에서 지적 했거나 에서 심볼릭 링크제거하십시오/etc/rcX.d/ . 여기서 X는 실행 수준입니다. 서비스가 자동으로 시작되지 않게 update-rc.d -f foo remove하려면 트릭을 수행하십시오.


2
데비안 8에서 어떻게 할 수 있습니까? sudo update-rc.d -f sunrpc remove작동하지 않습니다. 재부팅 후에도 여전히 존재합니다.

데비안 9 이것은 나에게 효과가 없었습니다. sudo를 잊어 버리면 update-rc.d는 피드백을 제공하지 않습니다. 나는 링크가 사라진 것을 확인했다ls /etc/rc*.d
Jason Dunkelberger

Ubuntu16.04
Stephane

올바른 서비스 이름을 전달했는지 확인하십시오. update-rc.d는 존재하지 않는 경우 피드백을 제공하지 않습니다.
marcovtwout

나중에 다시 활성화하려면 어떻게해야합니까? @ "Not Now"아래의 답변은 나중에 비활성화하고 다시 활성화 할 수 있으므로 더 좋습니다. update-rc.d apache2 disable
Wadih M.

54

sysv-rc-conf를 사용하여 Linux 시작 응용 프로그램을 구성하십시오 .

apt-get install sysv-rc-conf

다른 사람들이 지적했듯이 cmd 줄에 대한 update-rc.d 도 있습니다 .

예를 들어

update-rc.d apache2 disable

모든 실행 레벨에서 apache2를 비활성화합니다.


훌륭한 도구-몰랐습니다. 감사!
PEra

1
이렇게하면 실행중인 서비스가 중지되지 않으므로 다음을 추가해야합니다. service foo stop서버를 재부팅하십시오.
rubo77

15

짧은:

이 작업을 신속하게 수행 할 수있는 확실한 방법은 없습니다.

긴:

현재 데비안 (2012-06-01 현재 데비안 불안정)은 현재 서비스 / 데몬을 지속적으로 비활성화 할 수있는 확실한 방법이 없습니다. – 데몬 패키지 업그레이드는“/etc/init.d/package restart”를 무조건 실행하기 때문에이 런레벨에 대해 비활성화되었는지 여부가 결정됩니다.

데몬이 시작되지 않도록하려면 다음을 수행하십시오.

  • 그것을 제거
  • /etc/init.d/xyz 스크립트의 로컬 전환을 만듭니다 (이 방법으로 도구를 찾지 못합니다)
  • 해당 패키지의 구성 파일을 사용 / 사용하여 해당 스크립트의 조기 종료를 유발합니다 (예 : init 스크립트에서 소스 인 경우 / etc / default / xyz에 "exit"를 조기에 배치)
  • 해당 데몬을 시작하지 않는 사전 정의 된 "공식적인"방법은 init-script를 확인하십시오.

데비안에 init 스크립트에 대한 init-policy-something 단계가 있습니다 / was (?),이 누락 된 기능을 채우도록되어있었습니다. – 나는 그것을 사용하려고 시도했고, 그것을 발견했고, 버그를 발견했고, 다시는 만지지 않았다.

최신 정보:

"initd"의 대안 인 "systemd"로 전환하십시오. 데비안 패키지가 존재하며 다음과 같이 서비스를 비활성화 할 수 있습니다.

cd /etc/systemd/system
ln -s /dev/null xyz.service

1
+1 이것은 도움이되는 답변입니다. 만약 그 일이 발생하지 않으면 나중에 멈췄을 것입니다-감사합니다!

당신도 마찬가지로 할 수 있습니까 unlink xyz.service?
jaggedsoft

@NextLocal, 나는 왜 그것을 썼는지 잊었지만 서비스에 System V init 스크립트가 있다면 그것을 사용할 것이라고 믿습니다 systemd. – 따라서 링크는 찾지 않도록 지시합니다.
Robert Siemer

/etc/default/xyz파일을 추가하기 위해 파일을 편집 exit해도 다음 업그레이드시 패키지 프로그램이 파일을 올바른 버전으로 덮어 쓰는 것을 막을 수는 없습니다. 패키지는 구성 파일을 저장하며 대부분의 경우 init 스크립트는 그렇게 보이지 않습니다. 따라서 대부분의 경우 도움이되지 않습니다.
Alexis Wilke

Devuan은 구출에 이르렀습니다. systemd 대신에 전형적인 SysV rc.d / init.d 시스템 (또는 누군가 그것을 선택하면 openrc도 포함합니다).
Csaba Toth

5

이 명령을 실행

apt-get 설치 rcconf

설치되면 SSH에서 rcconf를 실행하면 부팅시 실행되도록 설정된 모든 서비스를 표시하는 대화 상자가 나타납니다. 스페이스를 눌러 특정 기능을 비활성화 / 활성화하면 선택하고 완료를 클릭하면 간단하게 확인을 클릭하면 다음 부팅시 서비스가 다시 시작되지 않습니다. 수년간 이것을 사용하고 있습니다. 저 같은 데비안 / 우분투 사용자를위한 매우 편리한 도구입니다.


1,2,3만큼 쉽습니다! 이 작은 명령 줄 도구에 감사드립니다.
DanielaWaranie

2

당신이 성취하려고하는 것이 혼란 스럽습니다.

어떤 런레벨을 원하십니까?

항상 실행하려면 update-rc.d foo defaults;을 사용하십시오 . 2, 3, 4 및 5에서 실행되는 동안 0, 1 및 6에서 중지됩니다.

실행할 실행 레벨을 정확하게 지정하려면 다음을 수행하십시오.

update-rc.d foo stop 0 1 6 3 . start 2 4 5 .


1

Debian7에서 insserv 사용 시작

모든 서비스 및 런레벨 정보 출력

insserv --showall

모든 런레벨에서 나열된 스크립트 제거

insserv --remove [specify_script]

0

우분투의 Bootup Manager는 일종의 sysv-rc-conf light 이며, 더 친숙한 GUI 버전이며,이 글을 읽는 많은 사람들이 그 점을 높이 평가할 것입니다.

http://www.marzocca.net/linux/bum.html


0

빨간 모자 기반 시스템에서 사용할 수 있습니다

chkconfig httpd off
chkconfig httpd --del

런레벨에서 서버를 제거하는 방법

데비안 기반 시스템에서 모든 서비스는 /etc/rc?.d/ 디렉토리에있는 파일에 의해 시작되어야합니다.이 파일들은 /etc/init.d/ 디렉토리에있는 해당 파일에 대한 심볼릭 링크를 갖습니다. 서비스를 기본적으로 시작하지 않으려면 /etc/rc?.d 디렉토리에서 서비스 이름을 바꾸거나 제거 할 수 있으며 시작 링크 중 하나에 여전히 링크가 표시되어 있으면 패키지 업그레이드시 변경 사항이 유지됩니다. 다른 (3,4 및 5) 디렉토리. 또는 update-rc.d 명령을 사용하여 링크를 변경할 수 있으며 이후에 서비스를 시작하려면 /etc/init.d/service_name start를 사용하여 시작을 종료하면 종료됩니다. 중지, 다시 시작, 다시로드와 같이 사용할 수있는 옵션을 제공하십시오 ...

sysv-rc-conf를 사용하여 비활성화 할 수 있다고 생각합니다.


이 질문에는 Fedora 나 Red Hat이 아니라 Debian 태그가 붙어 있습니다.

0
sudo update-rc.d SERVICE disable

실행 레벨을 지정하려는 경우.

sudo update-rc.d SERVICE disable|enable [S|2|3|4|5]

서비스 를 프로그램 이름 으로 변경하십시오 .

sudo service SERVICE restart

0

다른 곳에서 시작 스크립트를 백업하고 /etc/init.d/에서 제거하지 않는 이유는 무엇입니까? update-rc.d가 작동하지 않는 경우

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