giảm giá 50% tất cả các kế hoạch, thời gian có hạn. Bắt đầu lúc $2.48/mo
còn 7 phút
Máy chủ & Hệ điều hành

Cách khắc phục lỗi systemctl: Không tìm thấy lệnh trên Ubuntu

Nick bạc By Nick bạc đọc 7 phút Cập nhật ngày 20 tháng 2 năm 2025
cách sửa lỗi systemctl: không tìm thấy lệnh

Một trong những công cụ mạnh mẽ và tiện dụng nhất dành cho người dùng Linux, đặc biệt là các bản phân phối hiện đại như Ubuntu, là lệnh systemctl. Tiện ích dòng lệnh này thường được sử dụng để tương tác với systemd, hệ thống và trình quản lý dịch vụ.

Thông qua lệnh, bạn có thể quản lý các dịch vụ hệ thống, xem trạng thái của chúng, khởi động hoặc dừng chúng cũng như bật và tắt chúng khi khởi động hệ thống. Khá tiện dụng phải không? Nhưng nếu lệnh systemctl không được tìm thấy hoặc nhận dạng, bạn sẽ phải đối mặt với lỗi “sudo:systemctl: không tìm thấy lệnh” lỗi.

Vì vậy, hãy nói về ý nghĩa của lỗi “systemctl: command not Found”, các lý do khác nhau khiến bạn gặp phải lỗi này và cách khắc phục lỗi này.

systemctl: Lệnh không tìm thấy có nghĩa là gì?

Nói một cách đơn giản, lỗi “systemctl: command not Found” có nghĩa là tiện ích dòng lệnh systemctl không khả dụng hoặc không thể truy cập được trong môi trường hiện tại. Điều này có thể do nhiều lý do, tất cả đều bắt nguồn từ môi trường không phải là môi trường hệ thống hoặc gói systemd không được cài đặt trên hệ thống.

Về cơ bản, gói systemd chưa được cài đặt hoặc bản phân phối hoặc phiên bản Linux của bạn không sử dụng systemd; đúng hơn, nó sử dụng các hệ thống quản lý dịch vụ cũ hơn như init.d. Một khả năng khác là biến môi trường PATH không bao gồm thư mục chứa systemctl, nghĩa là shell của bạn không thể tìm thấy nó.

Bây giờ bạn đã biết điều gì có thể xảy ra với hệ thống của mình, dẫn đến lỗi “systemctl: command not Found”, hãy xem cách bạn có thể xác minh vấn đề của mình nằm ở đâu và cách khắc phục.

Sửa lỗi systemctl: Lỗi không tìm thấy lệnh

Trong các bước sau, chúng tôi sẽ xác minh xem hệ thống của bạn đã cài đặt systemd và sử dụng systemctl hay chưa, cũng như kiểm tra đường dẫn của systemctl. Sau khi xác minh được sự cố, chúng tôi sẽ thực hiện các bước cần thiết để khắc phục lỗi.

1. Xác minh xem hệ thống của bạn có sử dụng systemd không

Vì Ubuntu systemctl chỉ có thể được sử dụng nếu bạn đã cài đặt gói systemd nên trước tiên chúng tôi sẽ kiểm tra xem hệ thống của bạn có được sử dụng systemd hay không bằng cách chạy lệnh sau:

ps -p 1 -o comm=

Hoặc bạn có thể kiểm tra phiên bản systemd bằng lệnh sau:

systemd --version

Nếu đầu ra là systemd thì systemd là hệ thống init của bạn và cần cài đặt Ubuntu systemctl. Tuy nhiên, nếu đầu ra là init hoặc trình quản lý quy trình khác, điều đó có nghĩa là hệ thống của bạn đang sử dụng hệ thống khởi tạo thay thế và systemctl sẽ không hoạt động trừ khi bạn di chuyển sang systemd.

Nếu bạn thấy các hệ thống khởi tạo cũ hơn như Upstart hoặc SysVinit và muốn chuyển sang systemd để sử dụng systemctl, hãy làm theo các bước sau:

1. Cài đặt systemctl bằng cách cài đặt systemd bằng lệnh sau:

sudo apt install systemd-sysv

2. Khởi động lại hệ thống của bạn bằng cách chạy lệnh này:

sudo reboot

3. Kiểm tra xem hệ thống của bạn hiện có đang sử dụng systemd không:

ps -p 1 -o comm=

Đầu ra phải là systemd ngay bây giờ.

2. Đảm bảo systemd được cài đặt chính xác

Trong trường hợp bình thường, khi systemd được cài đặt và đang chạy dưới dạng hệ thống init của bạn, lệnh systemctl sẽ hoạt động chính xác. Nếu không, điều đó có nghĩa là gói systemd bị thiếu hoặc được cài đặt không đúng cách.

Lưu ý rằng nếu bạn đang sử dụng phiên bản tối thiểu của Ubuntu, chẳng hạn như bộ chứa Docker hoặc phiên bản đám mây, thì systemd có thể chưa được cài đặt theo mặc định. Để cài đặt systemctl thông qua cài đặt systemd, hãy chạy các lệnh sau:

sudo apt update
sudo apt install systemd

Sau khi cài đặt, hãy kiểm tra xem lệnh systemctl có sẵn không.

3. Kiểm tra PATH của systemctl

Một vấn đề phổ biến với lỗi không tìm thấy systemctl là systemctl có thể được cài đặt nhưng nó không có trong PATH của hệ thống của bạn. Để kiểm tra xem các tệp nhị phân systemd có tồn tại trong các thư mục thông thường nơi nó nằm hay không, như /bin, /usr/bin hoặc /usr/local/bin, bạn có thể sử dụng lệnh sau:

which systemctl

Nếu tìm thấy systemctl trong bất kỳ thư mục nào được liệt kê trong PATH, bạn sẽ nhận được kết quả như thế này:

/usr/bin/systemctl

Nếu không tìm thấy systemctl trong bất kỳ thư mục nào trong PATH, lệnh which sẽ không trả về gì.

Tuy nhiên, systemctl có thể vẫn không hoạt động ngay cả khi nó được tìm thấy trong thư mục của bạn. Điều này là do systemctl có thể nằm trong một thư mục không có trong PATH. Trong tình huống này, bạn sẽ phải xác minh xem thư mục chứa systemctl có phải là một phần của hệ thống của bạn hay không bằng cách sử dụng lệnh sau:

echo $PATH

Đầu ra phải giống như thế này:

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

Bây giờ, tất cả những gì bạn phải làm là kiểm tra xem thư mục chứa systemctl (mà bạn nhận được từ lệnh which) có được bao gồm trong các thư mục được liệt kê trong đầu ra từ lệnh echo $PATH hay không.

Nếu thư mục của systemctl không có trong đầu ra của echo $PATH, bạn sẽ phải thêm nó vào biến PATH của mình. Để làm điều này, bạn sẽ phải chạy lệnh sau:

Người dùng shell Bash, hãy mở tệp ~/.bashrc trong trình soạn thảo văn bản:

nano ~/.bashrc

Thêm dòng sau vào cuối tập tin:

export PATH=$PATH:/usr/bin

/usr/bin là một thư mục điển hình chứa systemctl trong ví dụ này.

Bây giờ, hãy lưu và đóng tệp bằng cách nhấn CTRL + X, sau đó nhấn Y để xác nhận và Enter để lưu.

Người dùng Zsh, Mở tệp ~/.zshrc trong trình soạn thảo văn bản:

nano ~/.zshrc

Thêm dòng sau vào cuối tập tin:

export PATH=$PATH:/usr/bin

/usr/bin là một thư mục điển hình chứa systemctl trong ví dụ này.

Bây giờ, hãy lưu và đóng tệp bằng cách nhấn CTRL + X, sau đó nhấn Y để xác nhận và Enter để lưu.

Khi bạn đã hoàn tất các bước trên, hãy sử dụng lệnh echo $PATH để xác minh xem thư mục systemctl của bạn đã được thêm vào PATH chưa. Bây giờ, bạn sẽ có thể chạy systemctl mà không gặp phải lỗi “systemctl: command not Found”.

4. Cài đặt lại hệ thống

Nếu các bản sửa lỗi trước đó không hoạt động và bạn vẫn gặp phải lỗi không tìm thấy lệnh, việc cài đặt lại hoàn toàn systemd có thể giải quyết được sự cố. Để thực hiện việc này, hãy chạy các lệnh sau:

sudo apt purge systemd
sudo apt install systemd

Sau đó, khởi động lại hệ thống của bạn bằng lệnh này:

sudo reboot

Kiểm tra xem systemctl có hoạt động không.

5. Xác minh systemd được cấu hình đúng

Đôi khi, sự cố có thể đơn giản như cài đặt systemd bị định cấu hình sai, dẫn đến lỗi “systemctl: không tìm thấy lệnh”. Tất cả những gì bạn phải làm để khắc phục sự cố này là chạy lệnh sau và bạn đã hoàn tất:

sudo dpkg-reconfigure systemd

6. Hệ thống con Windows dành cho Linux (WSL) đã lỗi thời

Nếu bạn đang sử dụng Ubuntu trong WSL (Hệ thống con Windows cho Linux) bạn nên biết rằng các phiên bản cũ hơn của WSL, chẳng hạn như WSL 1, không hỗ trợ systemctl, do đó, cho dù bạn sử dụng bản sửa lỗi nào trước đó, bạn sẽ không thể chạy systemctl.

Nếu bạn muốn tận dụng các chức năng của systemctl, bạn sẽ phải nâng cấp lên WSL 2, phiên bản này hỗ trợ tốt hơn cho systemd. Nếu bạn không chắc chắn liệu mình có đang sử dụng WSL hay không, bạn có thể kiểm tra bằng cách sử dụng lệnh sau:

uname -a

Nếu đầu ra đề cập đến WSL thì đó là lý do tại sao bạn thấy lỗi “systemctl: command not Found”.

7. Sử dụng dịch vụ sudo thay thế cho systemctl

Nếu bạn đang gặp phải lỗi “systemctl: command not Found” do hệ thống của bạn không sử dụng systemd, bạn có thể sử dụng lệnh dịch vụ sudo để quản lý dịch vụ. Lệnh này hoạt động với các hệ thống init cũ hơn như SysVinit hoặc Upstart. Điều này hữu ích cho các hệ thống Ubuntu dựa vào tập lệnh init thay vì systemd.

Ví dụ: để bắt đầu một dịch vụ, bạn sẽ chạy:

sudo service <service_name> start

suy nghĩ cuối cùng

systemd và tiện ích dòng lệnh systemctl của nó đã thay thế hầu hết các hệ thống init cũ khác như SysVinit và Upstart. Mặc dù systemd có thể không phải là sở thích của mọi người về hệ thống init do thiết kế nguyên khối và triết lý không phải Unix, nhưng systemd thường vẫn được coi là lựa chọn phổ biến. Vì vậy, hy vọng rằng bạn có thể giải quyết lỗi không có lệnh systemctl của mình, vì việc không thể sử dụng tiện ích dòng lệnh của systemd sẽ hạn chế nghiêm trọng khả năng của nó.

Câu hỏi thường gặp

Systemctl là gì và systemctl: Lệnh không tìm thấy nghĩa là gì?

systemctl là một công cụ dòng lệnh được sử dụng để quản lý các dịch vụ trong hệ thống Linux chạy systemd, chẳng hạn như Ubuntu. Lỗi “systemctl: command not Found” xảy ra khi công cụ này không khả dụng hoặc không thể truy cập được, thường là do hệ thống không sử dụng systemd hoặc gói systemd chưa được cài đặt.

Systemctl có sẵn trên tất cả các phiên bản Ubuntu không?

Không, systemctl không có sẵn trên tất cả các phiên bản Ubuntu. systemctl là một phần của hệ thống init systemd, là mặc định trong hầu hết các phiên bản Ubuntu hiện đại (từ 15.04 trở đi). Thay vào đó, các phiên bản cũ hơn hoặc một số cài đặt tối thiểu nhất định có thể sử dụng các hệ thống init thay thế như SysVinit hoặc Upstart.

Chia sẻ

Thêm từ blog

Hãy tiếp tục đọc.

Các ứng dụng tự lưu trữ tốt nhất bạn có thể chạy với ảnh bìa Cosmos Cloud với các bảng ứng dụng xung quanh bảng điều khiển Cosmos.
Máy chủ & Hệ điều hành

Các ứng dụng tự lưu trữ tốt nhất bạn có thể chạy với Cosmos Cloud: Tệp, Phương tiện, Mật khẩu, Tự động hóa, v.v.!

Có thể bạn đã thiết lập Cosmos Cloud và bây giờ muốn xem ứng dụng nào phù hợp với nó hoặc có thể bạn thậm chí chưa quyết định chọn Cosmos và chỉ muốn xem nó phù hợp với công việc của bạn như thế nào

Nick bạcNick bạc đọc 16 phút
Portainer vs Cosmos Cloud để quản lý ứng dụng Docker bao gồm sơ đồ thiết lập kết hợp và các hoạt động neon so với các khối truy cập.
Máy chủ & Hệ điều hành

Portainer vs Cosmos Cloud: Phù hợp nhất để quản lý ứng dụng Docker

Nếu bạn đã biết Docker và chỉ muốn một cách rõ ràng hơn để chạy một ngăn xếp ứng dụng đang phát triển thì đây là câu trả lời ngắn gọn cho Portainer vs Cosmos Cloud. Portainer là sự lựa chọn mạnh mẽ hơn cho Direc

Nick bạcNick bạc đọc 14 phút
Đồ họa nổi bật của Cosmos Cloud vs CasaOS vs Umbrel hiển thị ba đường dẫn tự lưu trữ bên trong một thế giới mạng đám mây trừu tượng.
Máy chủ & Hệ điều hành

Cosmos Cloud vs CasaOS vs Umbrel: Nền tảng tự lưu trữ nào phù hợp với thiết lập của bạn?

Câu trả lời ngắn gọn là CasaOS vẫn là nơi dễ bắt đầu nhất, Umbrel có cảm giác được quản lý rõ ràng nhất và Cosmos Cloud sẽ hợp lý hơn khi bạn muốn kiểm soát chặt chẽ hơn đối với doma

Nick bạcNick bạc đọc 11 phút

Sẵn sàng triển khai? Từ $2,48/tháng.

Đám mây độc lập, kể từ năm 2008. AMD EPYC, NVMe, 40 Gbps. Hoàn tiền trong 14 ngày.