systemctl 명령을 사용하여 Linux 서비스를 보는 방법



Linux에서 서비스를 관리하는 것은 처음이라면 다소 생소할 수 있습니다.특히 시작, 중지 또는 점검 등 여러 가지 작업이 복잡하게 얽혀 있기 때문입니다.서비스가 제대로 작동하지 않거나 예상대로 작동하지 않는 경우가 종종 있는데, systemctl을 사용하여 서비스를 나열하고 제어하는 ​​방법을 아는 것이 가장 큰 도움이 될 것입니다.이 가이드에서는 Linux 시스템을 원활하게 실행하는 데 필요한 필수 명령어와 요령을 안내하고, 단순히 복사-붙여넣기하는 것이 아니라 이러한 문제를 여러 번 겪으면서 얻은 실질적인 팁을 제공합니다.

systemctl을 사용하여 서비스를 관리하고 문제를 해결하는 방법

모든 서비스를 나열하여 실행 중인지 아닌지 확인하세요

시스템에 어떤 서비스가 로드되어 있는지 파악하려고 한다면(혹시 뭔가 제대로 작동하지 않는 것일 수도 있습니다) 첫 번째 단계는 모든 서비스를 나열하는 것입니다.터미널에서 다음 명령을 실행하세요.

sudo systemctl list-units --type=service

이 명령은 UNIT, LOAD, ACTIVE, SUB, DESCRIPTION 등의 열로 모든 서비스를 보여주는 표를 제공합니다. Linux는 장황한 설명을 좋아하기 때문에 일부 설정에서는 표가 다소 복잡하게 느껴질 수 있습니다.UNIT 열은 파일 이름(예: )을 표시하고 ssh.service, ACTIVE 상태는 실행 여부를 나타냅니다.비활성 또는 실패한 서비스를 포함한 모든 서비스를 보려면 다음을 추가하세요 --all.

sudo systemctl list-units --type=service --all

이 기능은 특히 작동하지 않거나 시작 시 활성화되지 않은 서비스를 추적하려고 할 때 유용합니다.물론 Linux는 단순히 스위치를 누르는 것보다 훨씬 복잡하게 만들었지만, 이러한 명령어들을 알고 있으면 커튼 뒤를 들여다볼 수 있습니다.

어떤 서비스가 활성화되어 있고 비활성화되어 있는지 확인하세요

특정 서비스가 실행되지 않거나 제대로 시작되지 않는다는 의심이 드는 경우, 다음과 같이 범위를 좁혀보세요.

sudo systemctl list-units --type=service --state=active

이 필터는 활성(실행 중인) 서비스만 표시합니다.반대로, 중지된 서비스를 확인하려면 다음을 실행하세요.

sudo systemctl list-units --type=service --state=inactive

수동으로 재시작해야 하거나 부팅 시 시작되지 않는 서비스를 파악하는 데 유용합니다.참고로, 서비스가 비활성 상태인 것처럼 보이지만 실행되어야 하는 경우, 수동으로 시작해야 할 수도 있습니다.

실패한 서비스 찾기 – 때로는 서비스가 중단되기 때문입니다.

서비스가 작동하지 않고 목록에는 있지만 실패 상태인 경우 다음을 확인하세요.

sudo systemctl list-units --type=service --state=failed

이 기능은 시작에 실패했거나 충돌한 서비스를 표시합니다.이상한 문제를 해결할 때 좋은 첫 단계입니다.아무리 무턱대고 재시작하더라도 서비스가 완전히 고장났는지 확인할 수 있기 때문입니다.

부팅 시 시작되도록 설정된 서비스 확인

시작 시 무엇이 활성화되어 있는지 알면 나중에 많은 골치 아픈 일을 피할 수 있습니다.실행:

sudo systemctl list-unit-files --type=service --state=enabled

이 표는 시스템 부팅 시 실행되도록 설정된 항목들을 간략하게 보여줍니다.서비스가 비활성화되었거나 마스크되어 시작되지 않는 경우 유용할 수 있습니다.비활성화된 항목을 보려면.enabled로 바꾸면 됩니다 disabled.

특정 서비스에 대한 세부 정보 얻기

특정 서비스에 무슨 일이 일어나고 있는지 알고 싶으신가요? 서비스가 제대로 작동하지 않거나, 서비스 상태, 로그, 메모리 사용량 등을 알고 싶으신가요? 다음을 실행하세요.

sudo systemctl status <service-name>

또는 <service-name>같은 것으로 바꾸세요.출력에는 현재 상태, 최근 로그, 그리고 CPU/메모리 정보가 표시됩니다.일종의 상태 점검 기능입니다.일부 배포판에서는 자세한 로그를 확인하는 데 사용하는 것이 더 유용할 수 있습니다.nginx.servicecups.servicejournalctl -u <service-name>

서비스 시작, 중지, 재시작 및 다시 로드 – 변경 사항 적용

서비스 시작

서비스를 구성한 후 실행해야 하는 경우 다음을 실행하세요.

sudo systemctl start <service-name>

이렇게 하면 서비스가 원활하게 시작됩니다.에서 제대로 작동하는지 확인하세요 status.

서비스 중지

잘못 동작하거나 불필요한 서비스를 중지하려면 다음을 실행하세요.

sudo systemctl stop <service-name>

재시작 또는 재로드(중단 없이 변경하려면)

구성 파일을 편집하고 변경 사항을 적용하려면 일반적으로 재시작하는 것이 좋지만, 일부 서비스는 빠른 재로드를 지원합니다.재시작하려면 다음을 수행하세요.

sudo systemctl restart <service-name>

또는 지원되는 경우 구성을 다시 로드하세요.

sudo systemctl reload <service-name>

참고: 모든 서비스가 새로고침을 지원하는 것은 아닙니다.먼저 설명서를 확인하세요.일반적으로 구성 매개변수 변경과 같은 사소한 조정만 하는 경우에는 이 방법이 더 안전합니다.

부팅 시 서비스 활성화 또는 비활성화

부팅 시 자동으로 서비스를 시작하려면 어떻게 해야 하나요? 활성화하세요.

sudo systemctl enable <service-name>

더 이상 시작하지 않으려면 비활성화하세요.

sudo systemctl disable <service-name>

두 가지를 동시에 실행하고 싶다면(활성화하고 즉시 시작하려면) 다음을 추가하기만 하면 됩니다 --now.

sudo systemctl enable --now <service-name>

마스크 착용 및 마스크 벗기 서비스 – 잠그거나 다시 사용 가능하게 하세요

마스킹을 사용하면 서비스가 어떤 방식으로든 시작되지 않습니다.서비스를 잠그려면 다음을 수행하세요.

sudo systemctl mask <service-name>

이렇게 하면 서비스가 /dev/null 에 연결되어 수동이나 자동으로 시작될 수 없습니다.실행하고 싶지 않은 서비스가 있을 때 유용합니다.잠금을 해제하려면 다음 명령어를 실행 취소하세요.

sudo systemctl unmask <service-name>

팁 — 서비스가 시작되지 않거나 마스크된 상태로 멈춰 버리는 경우가 있습니다.재시작하거나 캐시를 플러시하거나, 마스크/마스크 해제 후 문제가 발생하면 재부팅해 보세요.특히 고집스러운 서비스나 사용자 지정 스크립트에서 이런 문제가 자주 발생합니다.

마무리

systemctl 에 익숙해지는 것은 Linux의 판도를 바꾸는 중요한 요소입니다.항상 완벽한 것은 아니며, 일부 명령어는 배포판이나 버전에 따라 다르게 작동하지만, 이러한 기본 사항만으로도 문제 해결, 사용자 지정, 또는 서비스 작동 여부 등 대부분의 상황을 해결할 수 있습니다.특히 마스크된 서비스의 경우 약간의 시행착오가 예상되지만, 일단 익숙해지면 시스템 제어가 훨씬 쉬워집니다.

요약

  • systemctl list-units --type=service귀하의 서비스를 확인하는 데 사용
  • 상태를 확인하세요systemctl status <service>
  • 시작/중지systemctl start/stop <service>
  • 부팅 시 활성화 또는 비활성화systemctl enable/disable <service>
  • 서비스가 고집스러우면 마스크를 쓰거나 벗으세요.

이 글이 누군가의 골치 아픈 문제를 해결해 주길 바랍니다. Linux 서비스 관리가 항상 편리한 건 아니지만, 이 명령어들을 활용하면 훨씬 앞서 나갈 수 있습니다.도움이 되기를 바랍니다.여러 설정에서 작동했으니, 여러분에게도 도움이 될 수 있을 거예요.



이 글이 도움이 되었나요?