50% 할인 모든 플랜, 기간 한정. 시작 가격 $2.48/mo
7분 분량
서버 및 OS

Ubuntu에서 systemctl: Command Not Found 오류 해결하기

닉 실버 By 닉 실버 7분 읽기 2025년 2월 20일 업데이트
systemctl: command not found 오류 해결 방법

Linux 사용자, 특히 Ubuntu 같은 최신 배포판 사용자에게 가장 강력하고 유용한 도구 중 하나는 바로 systemctl 명령어. 이 커맨드라인 유틸리티는 주로 systemd, 즉 시스템 및 서비스 관리자와 상호작용하는 데 사용됩니다.

이 명령어를 사용하면 시스템 서비스를 관리하고, 상태를 확인하고, 시작하거나 중지하고, 시스템 시작 시 활성화 또는 비활성화할 수 있습니다. 꽤 유용하죠? 그런데 systemctl 명령어를 찾을 수 없거나 인식되지 않는 경우, 다음과 같은 문제가 발생합니다. "sudo:systemctl: command not found" 오류.

그럼 "systemctl: command not found" 오류가 무엇을 의미하는지, 왜 이 오류가 발생하는지, 그리고 어떻게 해결하는지 알아보겠습니다.

systemctl: Command Not Found 오류는 무엇을 의미하나요?

간단히 말해서, "systemctl: command not found" 오류는 현재 환경에서 systemctl 명령줄 유틸리티를 사용할 수 없거나 접근할 수 없다는 의미입니다. 원인은 여러 가지가 있지만, 결국 두 가지로 귀결됩니다. 해당 환경이 시스템 환경이 아니거나, systemd 패키지가 시스템에 설치되어 있지 않은 경우입니다.

기본적으로 systemd 패키지가 설치되어 있지 않거나, 사용 중인 Linux 배포판 또는 버전이 systemd를 사용하지 않는 경우입니다. 이 경우 init.d와 같은 구형 서비스 관리 시스템을 사용하고 있을 수 있습니다. 또 다른 가능성은 PATH 환경 변수에 systemctl이 위치한 디렉터리가 포함되어 있지 않아 셸이 해당 명령을 찾지 못하는 경우입니다.

이제 시스템의 문제를 파악하고 "systemctl: command not found" 오류를 유발할 수 있는 원인을 알게 되었으니, 문제가 어디에 있는지 확인하고 이를 해결하는 방법을 살펴보겠습니다.

systemctl: Command Not Found 오류 해결하기

다음 단계에서는 시스템에 systemd가 설치되어 있는지, systemctl을 사용하는지 확인하고, systemctl의 경로도 점검합니다. 문제를 파악한 후 오류를 해결하기 위한 조치를 취합니다.

1. 시스템이 systemd를 사용하는지 확인하기

Ubuntu systemctl은 systemd 패키지가 설치되어 있어야 사용할 수 있으므로, 먼저 다음 명령어를 실행해 시스템이 systemd를 사용하도록 설정되어 있는지 확인합니다:

ps -p 1 -o comm=

아니면 다음 명령어로 systemd 버전을 확인할 수도 있습니다:

systemd --version

출력이 systemd라면, systemd가 init 시스템으로 사용 중이며 Ubuntu systemctl이 설치되어 있을 것입니다. 반면 출력이 init이나 다른 프로세스 관리자라면, 시스템이 대체 초기화 시스템을 사용하고 있다는 의미이므로 systemd로 마이그레이션하지 않는 한 systemctl은 동작하지 않습니다.

Upstart나 SysVinit 같은 구형 초기화 시스템을 사용 중이고 systemctl을 쓰기 위해 systemd로 전환하려면 다음 단계를 따르세요:

1. 다음 명령어로 systemd를 설치하여 systemctl을 사용할 수 있습니다:

sudo apt install systemd-sysv

2. 다음 명령어를 실행하여 시스템을 재부팅하세요:

sudo reboot

3. 시스템이 이제 systemd를 사용하고 있는지 확인합니다:

ps -p 1 -o comm=

이제 출력 결과가 systemd여야 합니다.

2. systemd 올바르게 설치되었는지 확인하기

일반적인 환경에서 systemd가 설치되어 init 시스템으로 실행 중이라면 systemctl 명령어는 정상적으로 동작해야 합니다. 그렇지 않다면 systemd 패키지가 누락되었거나 제대로 설치되지 않은 것입니다.

Docker 컨테이너나 클라우드 인스턴스처럼 Ubuntu의 최소 설치 버전을 사용하는 경우, systemd가 기본적으로 설치되어 있지 않을 수 있습니다. systemd를 설치하여 systemctl을 사용하려면 다음 명령어를 실행하세요:

sudo apt update
sudo apt install systemd

설치가 완료되면 systemctl 명령어를 사용할 수 있는지 확인하세요.

3. systemctl의 PATH 확인하기

"systemctl not found" 오류의 흔한 원인 중 하나는 systemctl이 설치되어 있어도 시스템의 PATH에 등록되지 않은 경우입니다. /bin, /usr/bin, /usr/local/bin 등 systemctl이 위치하는 일반적인 디렉터리에 systemd 바이너리가 존재하는지 확인하려면 다음 명령어를 사용하세요:

which systemctl

PATH에 등록된 디렉터리 중 어느 곳에서든 systemctl이 발견되면 다음과 같은 출력 결과를 볼 수 있습니다:

/usr/bin/systemctl

PATH에 등록된 디렉터리 어디에서도 systemctl이 발견되지 않으면 which 명령어는 아무것도 반환하지 않습니다.

그러나 systemctl이 디렉터리에서 발견되더라도 여전히 동작하지 않을 수 있습니다. systemctl이 PATH에 포함되지 않은 디렉터리에 위치한 경우가 그렇습니다. 이 경우 systemctl이 위치한 디렉터리가 시스템에 올바르게 등록되어 있는지 다음 명령어로 확인해야 합니다:

echo $PATH

출력 결과는 다음과 같이 나타납니다:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

이제 which 명령어로 확인한 systemctl의 디렉터리가 echo $PATH 명령어 출력 결과의 디렉터리 목록에 포함되어 있는지 확인하면 됩니다.

echo $PATH 출력 결과에 systemctl의 디렉터리가 포함되어 있지 않다면 PATH 변수에 해당 디렉터리를 추가해야 합니다. 이를 위해 다음 명령어를 실행하세요:

위해 Bash 셸 사용자, 텍스트 편집기에서 ~/.bashrc 파일을 여세요:

nano ~/.bashrc

파일 끝에 다음 줄을 추가하세요:

export PATH=$PATH:/usr/bin

이 예시에서 /usr/bin은 systemctl이 위치하는 일반적인 디렉터리입니다.

파일을 저장하고 닫으려면 CTRL + X를 누른 뒤 Y로 확인하고, Enter를 눌러 저장하세요.

위해 Zsh 사용자, 텍스트 편집기에서 ~/.zshrc 파일을 여세요:

nano ~/.zshrc

파일 끝에 다음 줄을 추가하세요:

export PATH=$PATH:/usr/bin

이 예시에서 /usr/bin은 systemctl이 위치하는 일반적인 디렉터리입니다.

파일을 저장하고 닫으려면 CTRL + X를 누른 뒤 Y로 확인하고, Enter를 눌러 저장하세요.

위 과정을 모두 마쳤으면 echo $PATH 명령어로 systemctl의 디렉터리가 PATH에 추가되었는지 확인하세요. 이제 "systemctl: command not found" 오류 없이 systemctl을 실행할 수 있어야 합니다.

4. systemd 재설치

앞선 방법으로도 해결되지 않고 command not found 오류가 계속 발생한다면 systemd를 완전히 재설치하면 문제가 해결될 수 있습니다. 다음 명령어를 실행하세요:

sudo apt purge systemd
sudo apt install systemd

그런 다음 다음 명령어로 시스템을 재부팅하세요:

sudo reboot

systemctl이 정상적으로 동작하는지 확인하세요.

5. systemd 설정이 올바른지 확인하기

때로는 systemd 설치 설정이 잘못되어 "systemctl: command not found" 오류가 발생하는 경우도 있습니다. 다음 명령어 하나만 실행하면 문제를 해결할 수 있습니다:

sudo dpkg-reconfigure systemd

6. 구버전 Windows Subsystem for Linux (WSL)

혹시 Ubuntu를 WSL (Windows Subsystem for Linux) 환경에서 사용 중이라면, WSL 1과 같은 구버전 WSL은 systemctl을 기본적으로 지원하지 않는다는 점을 알아야 합니다. 앞서 소개한 어떤 해결 방법을 사용하더라도 WSL 1에서는 systemctl을 실행할 수 없습니다.

systemctl의 기능을 사용하려면 systemd를 더 잘 지원하는 WSL 2로 업그레이드해야 합니다. 현재 WSL을 사용하고 있는지 확인하려면 다음 명령어를 실행하세요:

uname -a

출력 결과에 WSL이 언급된다면, 그것이 "systemctl: command not found" 오류가 발생하는 원인입니다.

7. systemctl 대안으로 sudo service 사용하기

시스템이 systemd를 사용하지 않아 "systemctl: command not found" 오류가 발생한다면, sudo service 명령어로 서비스를 관리할 수 있습니다. 이 명령어는 SysVinit이나 Upstart 같은 구형 init 시스템과 호환됩니다. systemd 대신 init 스크립트를 사용하는 Ubuntu 시스템에 유용한 방법입니다.

예를 들어 서비스를 시작하려면 다음과 같이 실행합니다:

sudo service <service_name> start

마치며

systemd와 그 명령줄 도구인 systemctl은 SysVinit, Upstart 같은 대부분의 구형 init 시스템을 대체했습니다. 모놀리식 설계와 Unix 철학과의 괴리 때문에 systemd를 선호하지 않는 사용자도 있지만, 현재로서는 가장 널리 쓰이는 선택지입니다. 이 글을 통해 systemctl 명령어를 찾을 수 없는 오류를 해결하셨기를 바랍니다. systemd의 명령줄 도구를 사용할 수 없으면 시스템 관리 기능이 크게 제한되기 때문입니다.

자주 묻는 질문

systemctl이란 무엇이며, "systemctl: Command Not Found"는 무슨 의미인가요?

systemctl은 Ubuntu와 같이 systemd를 실행하는 Linux 시스템에서 서비스를 관리하는 명령줄 도구입니다. "systemctl: command not found" 오류는 이 도구를 사용할 수 없거나 접근이 불가능할 때 발생하며, 주로 시스템이 systemd를 사용하지 않거나 systemd 패키지가 설치되지 않은 경우에 나타납니다.

systemctl은 모든 버전의 Ubuntu에서 사용할 수 있나요?

아니요, systemctl이 모든 버전의 Ubuntu에서 지원되는 것은 아닙니다. systemctl은 systemd init 시스템의 일부로, 대부분의 최신 Ubuntu 버전(15.04 이후)에서 기본으로 제공됩니다. 구버전이나 일부 최소 설치 환경에서는 대신 SysVinit이나 Upstart 같은 대체 init 시스템을 사용할 수 있습니다.

공유

블로그 더 보기

계속 읽기.

Cosmos Cloud로 실행할 수 있는 최고의 셀프 호스팅 앱 - Cosmos 대시보드와 앱 패널 커버 이미지.
서버 및 OS

Cosmos Cloud로 실행할 수 있는 셀프 호스팅 앱 모음: 파일, 미디어, 비밀번호, 자동화 등!

Maybe Cosmos Cloud를 이미 설정했고 어떤 앱이 잘 맞는지 알고 싶거나, 아직 Cosmos를 도입할지 결정하지 못해 실제 워크플로에 얼마나 잘 맞는지 확인하고 싶다면

닉 실버닉 실버 16분 분량
Portainer vs Cosmos Cloud로 Docker 앱 관리하기 — 하이브리드 설정 다이어그램과 운영/접근 블록이 담긴 커버 이미지.
서버 및 OS

Portainer vs Cosmos Cloud: Docker 앱 관리에 적합한 선택은?

Docker를 이미 알고 있고 늘어나는 앱 스택을 더 깔끔하게 운영할 방법을 찾고 있다면, 답은 간단합니다. Portainer vs Cosmos Cloud 중 직접적인 제어 측면에서는 Portainer가 더 나은 선택입니다.

닉 실버닉 실버 14분 분량
Cosmos Cloud vs CasaOS vs Umbrel — 셀프 호스팅의 세 가지 경로를 추상적인 클라우드 네트워크 배경으로 표현한 피처 이미지.
서버 및 OS

Cosmos Cloud vs CasaOS vs Umbrel: 내 환경에 맞는 셀프 호스팅 플랫폼은?

간단히 말하면, CasaOS는 여전히 시작하기 가장 쉬운 선택이고, Umbrel은 큐레이션된 경험이 가장 깔끔하며, 도메인과 설정을 더 세밀하게 제어하고 싶을 때는 Cosmos Cloud가 더 적합합니다.

닉 실버닉 실버 11분 분량

배포할 준비가 됐나요? 월 $2.48부터.

2008년부터 운영해온 독립 클라우드. AMD EPYC, NVMe, 40 Gbps. 14일 환불 보장.