시작 시 생성된 프로세스를 종료해도 안전합니까?

시작 시 생성된 프로세스를 종료해도 안전합니까?

방금 데비안 7을 실행하는 가상 서버가 있고 서버를 시작하고 명령을 호출할 때마다 top부팅 시 자동으로 시작되는 많은 프로세스가 있습니다.

내가 그들을 죽일 수 있을까? 아니면 가상 서버의 일반 기능에 중요한가요?

답변1

늘 그렇듯이 상황에 따라 다릅니다...

일반적으로 데비안을 설치할 때 최소한의 설치로 시작한 다음 필요하고 실행하고 싶은 것을 추가합니다. 자동으로 시작되는 모든 항목이 실행되어야 합니다.

설치하고 활성화하는 데 필요한 것보다 훨씬 더 많은 항목이 있을 수 있지만 무작위로 항목을 제거하는 것은 잠재적인 오버헤드를 줄이는 잘못된 방법입니다.

무엇이 설치되어 있는지, 시스템이 시작될 때 어떤 서비스가 자동으로 시작되는지 확인하고 해당 서비스가 필요한지 여부를 결정하십시오.

그런 다음 해당 특정 서비스를 정상적으로 중지하고(예: 전통적으로 사용됨 /etc/init.d/servicename stop) 문제가 없으면 서비스가 자동으로 시작되지 않도록 하거나 패키지를 완전히 제거합니다.

당신이 보는 것의 대부분은 top아마도 단순히 죽일 수 없는 커널 스레드일 것입니다. 예를 들어, 대부분 유휴 상태인 이 시스템에서는 다음과 같습니다.

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
25878 <me>      20   0 15036 1172  912 R    0  0.0   0:00.09 top
    1 root      20   0 19356 1516 1196 S    0  0.0   0:02.01 init
    2 root      20   0     0    0    0 S    0  0.0   0:00.21 kthreadd
    3 root      RT   0     0    0    0 S    0  0.0   0:01.03 migration/0
    4 root      20   0     0    0    0 S    0  0.0   0:00.20 ksoftirqd/0
    5 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/0
    6 root      RT   0     0    0    0 S    0  0.0   0:01.75 watchdog/0
    7 root      RT   0     0    0    0 S    0  0.0   0:00.36 migration/1
    8 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/1
    9 root      20   0     0    0    0 S    0  0.0   0:00.36 ksoftirqd/1
   10 root      RT   0     0    0    0 S    0  0.0   0:01.72 watchdog/1
   11 root      20   0     0    0    0 S    0  0.0   0:37.92 events/0
   12 root      20   0     0    0    0 S    0  0.0   0:43.73 events/1

실제 애플리케이션은 두 개만 표시되며 top나머지 init0커널의 일부임을 나타내는 메모리 공간이 있습니다.

종료는 init시스템의 모든 프로세스의 상위 프로세스이며 다른 모든 프로세스의 시작을 담당합니다. 시스템을 종료하는 안정적인 방법이므로 피해야 합니다.

답변2

일부는 그럴 수도 있습니다. 몇몇은 그렇지 않을 수도 있습니다.

을 확인하면 이들 중 다수가 의 하위 항목 이고 이름도 괄호 안에 표시되어 있음 ps fxa을 알 수 있습니다 . [kthreadd]기본적으로 무시할 수 있는 것(Linux 커널의 일부임).

그 외에도 하나하나 개별적으로 공부해야 합니다. 일부(예: init)는 매우 중요합니다. 다른 것들은 서버를 어떻게 사용하느냐에 따라 중요합니다( sshd, apache2/ httpd등). 추가 기능(예: )은 귀하 또는 귀하의 코드가 해당 기능을 사용하는 경우에만 필요합니다 atd.

그들을 죽이는 것은 일반적으로 그들을 다루는 방법이 아닙니다. 대신, 먼저 해당 기능을 비활성화(또는 완전히 삭제)해야 합니다. 이를 수행하는 방법은 가상 서버가 실행 중인 배포에 따라 다릅니다.

관련 정보