리눅스 서비스 확인 명령어 - linugseu seobiseu hwag-in myeonglyeong-eo

리눅스 시스템이 재부팅을 했을 때, 특정 데몬들을 자동실행하고 싶은 경우가 있다. 빅데이터 클러스터의 경우 ambari-agent 등의 데몬을 자동 실행하도록 설정해두면, 장비의 점검이 끝나고 재부팅이 되었을 때 Ambari 서버에서 쉽게 컴포넌트들을 재시작할 수 있다.

리눅스 서비스 (Linux Service)

윈도우에서 시스템이 재부팅되면 자동으로 실행되는 프로그램들이 있다. 마찬가지로 리눅스에서도 시스템이 부팅될 때 백그라운드에서 자동 실행되는 응용프로그램들이 있다. 백그라운드에서 동작하면서 사용자에게 어떠한 서비스들을 제공하기 위한 이런 데몬들을 '리눅스 서비스'라고 생각하면 된다.

CentOS 7 - systemctl 명령

CentOS 7에서는 서비스와 관련된 설정을 세팅하거나 확인하기 위해 systemctl 이라는 명령을 제공한다.

서비스 상태 확인

systemctl status ${service_name}.service

서비스 시작

systemctl start ${service_name}.service

서비스 재시작

systemctl restart ${service_name}.service

서비스 중지

systemctl stop ${service_name}.service

부팅시 서비스 자동시작

systemctl enable ${service_name}.service

부팅시 서비스 자동 시작 해제

systemctl disable ${service_name}.service

자동시작 여부 확인

systemctl is-enabled ${service_name}

서비스 목록 보기

systemctl list-units --type=service

CentOS 6 - service 명령 & chkconfig

서비스 상태 확인

service ${service_name} status

서비스 시작

service ${service_name} start

서비스 재시작

service ${service_name} restart

서비스 중지

service ${service_name} stop

부팅시 서비스 자동시작

chkconfig ${service_name} on

부팅시 서비스 자동 시작 해제

chkconfig ${service_name} off

자동시작 여부 확인

chkconfig ${service_name}

서비스 목록 보기

chkconfig --list

○ systemctl 서비스 제어 명령어

# systemctl [명령] [서비스명] : 서비스명 입력할 때 [서비스명].service를 다 쳐야하는 경우도 있습니다.

예시) # systemctl start httpd 아파치 서비스 시작

        # systemctl start tomcat.service 톰캣 서비스 시작

위의 명령어들 처럼 .service 를 붙여야 하는 경우도 있고, 아닌 경우도 있습니다.

● 명령의 종류 ●

▷ start : 서비스 시작

▷ stop : 서비스 중지

▷ status : 서비스 상태 확인 (서비스가 구동 중인지 아닌지 알 수 있음)

▷ restart : 서비스 재시작 (중지 -> 시작) : 보통 변경한 설정 후에 많이 사용

▷ reload : 서비스를 중지하지 않고 설정 값을 반영 (서비스가 중지되면 안되는 경우 사용)

▷ enable : 시스템이 재부팅하면 자동으로 서비스 실행하도록 등록

▷ disable : enable 한 서비스 해제

# systemctl list-units --type service [--all] : [모든]서비스 목록 보기

# systemctl list-unit-files --type service : 모든 서비스의 현재 활성화 상태 보기

# systemctl daemon-reload : 설정들을 데몬에 즉시 반영하기 위한 명령어

# systemctl kill [서비스명] : 서비스와 관련된 프로세스까지 모두 종료

# systemctl reset-failed : 서비스를 disable 했는데도 계속 보이면 리셋 시키는 명령어

○ 프로세스 상태 확인

# ps [옵션] : ps 명령어는 실행중인 프로세스 목록과 상태를 보여줍니다.

                process state 의 약자라고 합니다.

CPU 사용률과 사용중인 프로세스를 확인하기 위해서 많이 사용합니다.

리눅스는 서버 역할을 많이 하다보니 다수의 사용자가 접근해서 느려지는 경우도 있습니다.

불필요한 프로세스가 돌고있다면 강제로 종료해주기도 합니다.

그 중에서도 # ps -ef 옵션을 가장 많이 사용합니다.

● 명령 옵션 ●

(훨씬 더 많이 있지만 자주 사용하는 것만 기재) 

-a : 일반적으로 로그인 쉘을 제외하고 데몬 프로세스처럼 터미널에 종속되지 않은 모든 프로세스를 출력

-e : 커널 프로세스를 제외한 모든 프로세스를 출력 

-f : 풀 포맷으로 보여준다. (UID, PID 등 함께 표시)

-l : 긴 포맷으로 보여준다.

-u : 특정 사용자의 프로세스 정보 확인할 때 사용 (사용자 미지정 시 현재 사용자 기준으로 설정)

-x : 프로세서가 종료한 후에도 자신의 일을 계속 수행하는 프로세스가 있는데 그런 프로세스는 일반적인 ps명령으로

     확인할 수 없다. 이때 -x옵션을 사용하면 확인할 수 있다.

● ps 명령어가 보여주는 의미 ●

# ps -ef | grep sshd : 많은 프로세스 중 sshd만 찾아서 보겠다는 뜻입니다.

  UID           PID       PPID   C  STIME  TTY          TIME        CMD

리눅스 서비스 확인 명령어 - linugseu seobiseu hwag-in myeonglyeong-eo

나타내주는 의미를 위에 용어로 살짝 적어놓았습니다. 이보다 더 많은 용어가 있지만 자주 쓰는 것만 살펴보겠습니다.

▷ UID(User ID) : 프로세스 소유자의 이름

▷ PID(Process ID) : 프로세스의 식별번호

▷ PPID(Parent PID) : 부모 프로세스 ID

▷ C : 짧은 기간 동안의 CPU 가동률

▷ STIME : 프로세스가 시작된 시간 or 날짜

▷ TTY : 프로세스와 연결된 터미널

▷ TIME : 총 CPU 사용 시간

▷ CMD(command) : 프로세스의 실행 명령

▷ PRI : 실제 실행 우선 순위

위에 명령어 | (파이프 라인 shift + \) 기호와 grep 명령어를 함께 사용하면 아주 유용합니다.

리눅스 자체 명령어라 다른 명령어와도 함께 잘 유용하게 쓸 수 있습니다. | grep 기억하시면 좋습니다.

다음 글에서 프로세스에 대해 살짝 이해하는 정도로 알아보도록 하겠습니다.

it-serial.tistory.com/29 이 글을 참조하시면 됩니다.