systemd 서비스 상태 확인 및 관리 명령어 모음
systemd를 사용하여 실행 중인 서비스의 상태를 확인하고, 시작, 중지, 재시작, 활성화/비활성화하는 방법을 안내합니다. 서버 관리 및 서비스 배포에 필수적인 명령어입니다.
systemd 서비스 상태 확인 및 관리 레시피
이 레시피는 systemd 기반 리눅스 시스템에서 서비스의 상태를 확인하고, 서비스를 관리하기 위한 기본적인 명령어들을 제공합니다. 서버 관리, 애플리케이션 배포, 자동화 스크립트 작성 등에 활용할 수 있습니다.
1. 서비스 상태 확인
현재 실행 중인 특정 서비스의 상태를 확인합니다.
systemctl status my-app.service
설명: my-app.service는 확인하려는 서비스의 실제 파일 이름으로 대체해야 합니다. 예를 들어, 웹 서버인 nginx.service나 데이터베이스인 postgresql.service 등이 될 수 있습니다. 이 명령은 서비스가 현재 활성 상태인지, 비활성 상태인지, 실패했는지, 그리고 최근 로그 메시지를 보여줍니다.
2. 모든 활성 서비스 목록 확인
현재 시스템에서 활성 상태인 모든 systemd 서비스들의 목록을 보여줍니다.
systemctl list-units --type=service --state=running
설명: 이 명령어는 현재 실행 중인 서비스들의 이름, 상태, 설명 등을 포함한 표 형태로 결과를 출력합니다. 시스템의 전반적인 서비스 상태를 파악하는 데 유용합니다.
3. 서비스 시작
중지된 서비스를 시작합니다.
sudo systemctl start my-app.service
설명: sudo 권한이 필요할 수 있습니다. my-app.service를 시작하려는 서비스의 이름으로 변경하세요.
4. 서비스 중지
실행 중인 서비스를 중지합니다.
sudo systemctl stop my-app.service
설명: my-app.service를 중지하려는 서비스의 이름으로 변경하세요.
5. 서비스 재시작
실행 중인 서비스를 중지하고 다시 시작합니다. 설정 변경 후 적용 등에 사용됩니다.
sudo systemctl restart my-app.service
설명: my-app.service를 재시작하려는 서비스의 이름으로 변경하세요.
6. 서비스 상태 토글 (재시작)
서비스가 실행 중이면 중지하고, 중지 상태이면 시작합니다. restart와 유사하지만, 상태에 따라 동작이 다릅니다.
sudo systemctl reload my-app.service
설명: reload 명령은 일반적으로 서비스를 완전히 중단시키지 않고 설정을 다시 읽어오도록 할 때 사용됩니다. 일부 서비스는 reload를 지원하지 않거나, restart와 동일하게 동작할 수 있습니다. my-app.service를 reload 하려는 서비스 이름으로 변경하세요.
7. 부팅 시 서비스 자동 시작 활성화
시스템이 부팅될 때 해당 서비스가 자동으로 시작되도록 설정합니다.
sudo systemctl enable my-app.service
설명: 이 명령은 /etc/systemd/system/multi-user.target.wants/ 와 같은 디렉토리에 심볼릭 링크를 생성하여 부팅 시 systemd가 해당 서비스를 인식하게 합니다. my-app.service를 자동으로 시작하게 할 서비스 이름으로 변경하세요.
8. 부팅 시 서비스 자동 시작 비활성화
시스템 부팅 시 해당 서비스가 자동으로 시작되지 않도록 설정합니다.
sudo systemctl disable my-app.service
설명: enable 명령으로 생성된 심볼릭 링크를 제거합니다. my-app.service를 자동 시작에서 제외할 서비스 이름으로 변경하세요.
9. 서비스 상태 및 활성화 여부 확인
특정 서비스가 시스템 부팅 시 자동으로 시작되도록 활성화되었는지 여부를 확인합니다.
systemctl is-enabled my-app.service
설명: enabled 또는 disabled를 출력합니다. my-app.service를 확인할 서비스 이름으로 변경하세요.
10. 모든 서비스의 활성화 여부 확인
현재 시스템에 설치된 모든 서비스들의 활성화 상태를 목록으로 보여줍니다.
systemctl list-unit-files --type=service
설명: 각 서비스 파일의 이름과 함께 enabled, disabled, static 등의 상태를 보여줍니다. static은 다른 서비스에 의해 시작/중지되는 서비스로, 직접 enable/disable 할 수 없습니다.
팁:
- 일반적으로 서비스 파일 이름은
.service접미사를 가집니다. sudo는 관리자 권한이 필요할 때 사용합니다.systemctl명령은 systemd 시스템 관리의 핵심 도구이므로, 다양한 옵션을man systemctl명령으로 확인해 보시는 것을 권장합니다.- 서비스의 설정 파일은 보통
/etc/systemd/system/또는/usr/lib/systemd/system/디렉토리에 위치하며, 직접 수정 후에는sudo systemctl daemon-reload명령으로 systemd 설정을 다시 로드해야 변경 사항이 적용됩니다.