Linux 서비스가 자동 시작되지 않도록하려면 어떻게합니까?


11

최근에 Windows에서 Linux (xubuntu)로 마이그레이션했습니다.

저는 개발자이며 필요한 모든 것을 설치했습니다 (램프). Windows에서는 불필요한 서비스를 모두 끄곤했습니다. Apache 또는 MySQL 서비스를 항상 실행할 필요는 없습니다. MySQL이 필요할 때마다 다음을 사용했습니다.

net start mysql

Linux에서 어떻게합니까?

  1. 불필요한 데몬이 자동 시작되지 않도록 설정 하시겠습니까?
  2. 필요할 때만 시작합니까?

3
사용중인 정확한 우분투 버전을 포함시켜야한다고 생각합니다. 새로운 우분투 버전은 upstart를 사용하는데, 이는 고유 한 문제가 있습니다.
vtest

편집 : Xubuntu 최신 버전 10.04를 사용하고 있지만 id는 터미널에서만 사용하고 GUI를 사용하고 싶지 않습니다. @prhq가 그의 답변에 무언가를 얻은 것처럼 보입니다. 시동이란 무엇입니까?
Aviv

Server Fault 또는 Unix의 다른 곳에 속해 있습니다. 그래도 여전히 유용합니다.
ripper234

답변:


11

대부분의 Linux 배포에서는 다음 명령을 실행하여 루트 또는 sudo를 사용하여 수동으로 서비스를 시작 / 중지 할 수 있습니다.

# /etc/init.d/apache2 start
# /etc/init.d/mysqld start

# /etc/init.d/apache2 stop
# /etc/init.d/mysqld stop

자동으로 시작되는 서비스는 /etc/rc[runlevel].d/의 파일 링크로 제어됩니다. "runlevel"명령을 루트로 사용하여 현재 런레벨을 찾으십시오

# runlevel
N 2

여기에 runlevel 2가 표시됩니다. 이제 시작하지 않으려는 /etc/rc2.d/에서 해당 파일을 제거하면됩니다.

데스크탑에서 아파치와 MySQL을 제거하는 것은 괜찮지 만 다른 서비스를 제거하는 것에주의하십시오.


3
"대부분의 배포판"이라고하더라도 이것은 잘못된 것입니다. 나는 당신의 레시피를 배포판으로 한정 할 것입니다.
vtest

어느 것을 염두에 두셨습니까? 나는 단지 ArchLinux에 대해서만 생각할 수있다. 물론 일부 배포판에는 특정 도구가 있지만 위의 기술도 해당 도구에 적용됩니다.
hultqvist

아주 이상합니다 ./etc/rc2.d 디렉토리에서 S91apache2라는 파일을 볼 수 있습니다. apache2를 시작한 것 같습니다 ...하지만 MySQL 관련 파일을 찾을 수 없습니다. 이 자동 시작 데몬에 대한 정보는 어디서 얻을 수 있습니까?
Aviv

그러면 mysql 서버가 자동 시작으로 구성되지 않았을 수 있습니다. 이 사이트는 좋은 설명이있는 것 같습니다 : yolinux.com/TUTORIALS/LinuxTutorialInitProcess.html
hultqvist

* BSD 및 Slackware 트리에서 디렉토리는 /etc/rc.d/입니다.
new123456

15

systemd (15.04 이상)를 사용하는 Ubuntu 버전의 경우 다음을 사용하십시오.

systemctl disable service

이것은 일을 할 것입니다. 서비스가 비활성화되고 재부팅 후에 다시 시작되지 않습니다. 일시적으로 서비스를 활성화하려면 서비스 를 시작 하십시오. 활성화 하지 않습니다 .

서비스 이름을 찾으려면

service --status-all

다른 명령은 다음과 같습니다.

systemctl start service-서비스를 시작할 때 사용하십시오. 재부팅 후에도 지속되지 않습니다

systemctl stop service-서비스를 중지 할 때 사용하십시오. 재부팅 후에도 지속되지 않습니다

systemctl restart service -서비스를 다시 시작하는 데 사용

systemctl status service-서비스 상태를 보여줍니다. 서비스가 현재 실행 중인지 알려줍니다.

systemctl enable service-다음에 다시 부팅하거나 다음에 시작할 때 서비스를 켭니다. 재부팅 후에도 지속됩니다.

systemctl disable service-다음에 다시 부팅하거나 다음 중지 이벤트에서 서비스를 끕니다. 재부팅 후에도 지속됩니다.


2
그것은 받아 들인 대답이 아쉽습니다 :). 고맙습니다, 나는 그 명령에 대해 완전히 잊었습니다.
Nordes

8

Ubuntu 10.04는 SysVinit (대부분의 Linux 배포에서 사용하는 기존 시스템)와 Upstart (Ubuntu에서 추진하고 점점 더 많은 배포에서 사용할 수있는 최신 시스템)의 두 서비스 관리 시스템 간 전환 중에 있습니다.

SysVinit 서비스 관리 스크립트는에 /etc/init.d있습니다. 로 서비스를 시작 /etc/init.d/SERVICENAME start하고 중지 할 수 있습니다 /etc/init.d/SERVICENAME stop. 서비스가 부팅시 자동으로 시작됩니다 여부에 심볼릭 링크의 존재에 의존 /etc/rc?.d?에서 자리입니다 2으로 5합니다 ( 실행 레벨 ). 부팅시 서비스가 자동으로 시작되지 않도록하는 가장 쉬운 방법은를 사용하는 것 update-rc.d SERVICENAME disable입니다.

시작 서비스 관리 구성 파일은에 /etc/init있습니다. 로 서비스를 시작 start SERVICENAME하고 중지 할 수 있습니다 stop SERVICENAME. 구성 파일 /etc/init/SERVICENAME.conf에는 서비스 시작시기를 나타내는 행이 있습니다 start on …. 이러한 서비스를 비활성화하는 쉬운 방법은 해당 줄을로 변경하는 것 start on never and (…)입니다. 파일을 편집하지 않으려면 패키징 시스템의 이름을로 끝나지 않고 이름을 바꾸어 서비스를 혼동하지 않고 서비스를 완전히 비활성화 할 수도 있습니다 .conf.

dpkg-divert --add --local --divert /etc/init/foo.conf.disabled --rename /etc/init/foo.conf

Ubuntu 10.04부터 Apache에는 SysVinit 스크립트가 제공되고 Mysql에는 Upstart 스크립트가 제공됩니다.


servicename.conf를 편집하는 것이 실제로 선호되는 방법입니까? 특히 업데이트가 이론적으로 구성 파일을 업데이트하고 변경 사항을 무시할 수있는 경우
Masse

@Masse : 항상 선호되는 방법은 아니지만 항상 작동한다는 장점이 있습니다. 일부 서비스는 파일을 읽고 끌 수 /etc/default있는 START_FOO옵션이 있지만 설치되어있는 경우 많은 서비스가 실행될 것으로 예상합니다. 변경 사항이 모두 conffile이므로 업데이트하지 않아도 변경 사항을 덮어 쓰지 않습니다.
Gilles 'SO- 악마 중지'

와. 이것은 거꾸로 큰 단계처럼 보입니다.
Masse

@Masse : Conffiles는 관리자가 편집해야합니다. 그러나이를 원하지 않으면 dpkg-divert서비스 파일 이름을 바꾸는 데 사용할 수도 있습니다 . 그러나 그렇게하면 서비스를 명시 적으로 시작할 수 없습니다.
Gilles 'SO- 악마 그만해'
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.