- 1 1. Pengenalan
- 2 2. Cara Menyenaraikan Perkhidmatan dengan systemctl
- 3 3. Pengurusan Perkhidmatan Asas dengan systemctl
- 3.1 3.1 Memulakan Perkhidmatan
- 3.2 3.2 Menghentikan Perkhidmatan
- 3.3 3.3 Memulakan Semula Perkhidmatan
- 3.4 3.4 Memeriksa Status Perkhidmatan
- 3.5 3.5 Mengaktifkan Perkhidmatan untuk Dimulakan Secara Automatik
- 3.6 3.6 Menyahaktifkan Perkhidmatan daripada Dimulakan Secara Automatik
- 3.7 3.7 Memeriksa Sama Ada Perkhidmatan Diaktifkan
- 4 4. Pilihan Berguna dan Teknik Lanjutan untuk systemctl
- 5 5. Masalah Biasa dan Penyelesaiannya
- 6 6. Ringkasan
- 7 7. Soalan-soalan Lazim Ditanya (FAQ)
- 7.1 Q1. Apakah perbezaan antara arahan systemctl dan service?
- 7.2 Q2. Apakah perbezaan antara list-units dan list-unit-files?
- 7.3 Q3. Bolehkah saya memulakan perkhidmatan dalam keadaan “static”?
- 7.4 Q4. Saya tidak boleh memulakan perkhidmatan yang disekat. Apa yang perlu saya lakukan?
- 7.5 Q5. Adakah GUI untuk menyenaraikan status perkhidmatan?
- 7.6 Q6. Di mana saya patut letakkan fail unit tersuai?
1. Pengenalan
Apabila menggunakan Linux, terdapat banyak situasi di mana anda mungkin ingin memeriksa status perkhidmatan atau menyenaraikan semua proses yang sedang berjalan. Dalam kes tersebut, arahan systemctl sangat berguna.
Arahan ini berinteraksi dengan “systemd,” sistem inisialisasi dan pengurus perkhidmatan pada Linux, menyediakan pelbagai ciri seperti memeriksa status perkhidmatan (unit), memulakan, menghentikan, memulakan semula, dan menyenaraikan perkhidmatan.
Terutama apabila bercakap tentang “penyenaraian dengan systemctl,” anda dapat memahami struktur sistem anda dari pelbagai sudut—bukan hanya perkhidmatan yang sedang aktif, tetapi juga yang tidak aktif, atau perkhidmatan yang ditetapkan untuk mula secara automatik.
Bahagian ini akan secara ringkas menggariskan asas “systemctl,” dan menjelaskan apa yang akan anda pelajari dalam artikel ini.
Apa itu systemctl?
systemctl ialah alat standard untuk mengawal dan memeriksa pelbagai “unit” seperti perkhidmatan, target, dan titik pemasangan pada distribusi Linux berasaskan systemd.
Sebagai contoh, anda menggunakannya untuk memulakan atau menghentikan perkhidmatan seperti Apache (httpd) atau SSH, atau untuk menyenaraikan status perkhidmatan tersebut.
Hubungan Antara systemd dan systemctl
systemd ialah teras sistem untuk proses boot dan pengurusan perkhidmatan pada Linux, menggantikan alat lama seperti SysVinit dan Upstart. systemctl ialah utiliti baris perintah yang berinteraksi secara langsung dengan systemd.
Dengan kata lain, jika systemd adalah “pengawal,” maka systemctl berfungsi sebagai “operator” yang menghantar arahan.
Apa yang Anda Akan Pelajari dalam Artikel Ini
Artikel ini menjawab soalan-soalan umum berikut:
- Bagaimana saya boleh menyenaraikan semua perkhidmatan yang sedang berjalan?
- Bagaimana saya memasukkan perkhidmatan yang tidak aktif ke dalam senarai?
- Bagaimana saya memeriksa perkhidmatan yang diaktifkan untuk mula secara automatik?
- Bagaimana saya membaca dan mentafsirkan hasilnya?
Setiap contoh arahan dan outputnya dijelaskan dengan teliti untuk pemula, jadi sila ikuti sehingga akhir.
2. Cara Menyenaraikan Perkhidmatan dengan systemctl
Dalam pentadbiran sistem Linux, memahami senarai perkhidmatan dengan cepat adalah penting. Dengan arahan systemctl, anda boleh melihat bukan sahaja perkhidmatan yang sedang aktif tetapi juga yang tidak aktif dan yang dikonfigurasikan untuk mula secara automatik.
Di sini, kami akan menjelaskan tiga perspektif utama untuk menyenaraikan perkhidmatan:
- Senarai perkhidmatan aktif
- Senarai semua perkhidmatan (termasuk yang tidak aktif)
- Senarai fail unit perkhidmatan (termasuk tetapan permulaan)
2.1 Menyenaraikan Perkhidmatan Aktif Semasa
Untuk memeriksa perkhidmatan yang “berjalan” pada sistem anda, gunakan arahan asas berikut:
systemctl list-units --type=service
Arahan ini memaparkan senarai perkhidmatan yang sedang aktif (berjalan). Outputnya termasuk lajur berikut:
| Column | Description |
|---|---|
| UNIT | Name of the service (e.g., ssh.service) |
| LOAD | Whether the unit file is loaded |
| ACTIVE | Service status (e.g., active, inactive, failed) |
| SUB | Detailed status (e.g., running, exited, dead) |
| DESCRIPTION | Brief description of the service |
Maklumat ini membantu anda memahami, contohnya, sama ada nginx sedang berjalan atau perkhidmatan apa yang aktif.
2.2 Menyenaraikan Semua Perkhidmatan, Termasuk yang Tidak Aktif
Secara lalai, list-units hanya menunjukkan perkhidmatan yang sedang aktif. Untuk memasukkan perkhidmatan yang tidak aktif, tambahkan pilihan --all:
systemctl list-units --type=service --all
Pilihan ini membolehkan anda melihat perkhidmatan dalam keadaan “tidak aktif” atau yang belum pernah dimulakan sebelum ini.
Jika anda ingin menapis keputusan lebih lanjut, gunakan pilihan --state= untuk menapis mengikut status tertentu:
systemctl list-units --type=service --state=inactive
Ini berguna apabila anda hanya ingin memeriksa perkhidmatan yang dihentikan, contohnya.
2.3 Menyenaraikan Fail Unit Perkhidmatan
Jika anda ingin mengetahui bukan sahaja status semasa tetapi juga perkhidmatan mana yang diaktifkan dan ditetapkan untuk mula secara automatik, gunakan arahan berikut:
systemctl list-unit-files --type=service
Arahan ini memaparkan senarai fail unit perkhidmatan (fail konfigurasi) dan membolehkan anda memeriksa status enable/disable mereka (enabled, disabled, dll.).
| STATE Value | Description |
|---|---|
| enabled | Automatically enabled at boot |
| disabled | Not enabled at boot; must be started manually |
| static | Started as a dependency of other units; cannot be enabled/disabled directly |
| masked | Explicitly disabled and cannot be started (protected) |
Mengkaji senarai ini membantu anda secara visual memahami perkhidmatan mana yang mula semasa boot dan sama ada ada yang secara tidak sengaja dimask.
3. Pengurusan Perkhidmatan Asas dengan systemctl
The systemctl command not only checks service status but also lets you start, stop, restart, and enable or disable services. Here are the basic operations frequently used in Linux system management.
Mastering these commands is essential for daily server management and troubleshooting.
3.1 Memulakan Perkhidmatan
To start a specific service manually, use the start subcommand:
sudo systemctl start [service name]
For example, to start Apache (httpd):
sudo systemctl start httpd.service
This starts the service immediately. If you want it to persist after reboot, use enable as well (explained below).
3.2 Menghentikan Perkhidmatan
To stop a service, use this command:
sudo systemctl stop [service name]
Example:
sudo systemctl stop sshd.service
The service remains stopped until you explicitly start it again.
3.3 Memulakan Semula Perkhidmatan
To restart a service (for example, after configuration changes), use:
sudo systemctl restart [service name]
Example:
sudo systemctl restart nginx.service
Restart always stops and then starts the service, regardless of its current state.
3.4 Memeriksa Status Perkhidmatan
To check detailed service status, use the status subcommand:
systemctl status [service name]
Example:
systemctl status mysql.service
This shows the current active state, process ID (PID), log summary, and more—very helpful for troubleshooting.
3.5 Mengaktifkan Perkhidmatan untuk Dimulakan Secara Automatik
To ensure a service starts automatically at boot, use the enable subcommand:
sudo systemctl enable [service name]
Example:
sudo systemctl enable docker.service
Now, the service will launch automatically on the next system boot.
3.6 Menyahaktifkan Perkhidmatan daripada Dimulakan Secara Automatik
To disable auto-start, use the disable command:
sudo systemctl disable [service name]
Example:
sudo systemctl disable cups.service
This prevents the service from starting at boot.
3.7 Memeriksa Sama Ada Perkhidmatan Diaktifkan
To check whether a service is enabled (starts automatically), use is-enabled:
systemctl is-enabled [service name]
Example output:
enabled
This quickly tells you the service’s startup policy.
4. Pilihan Berguna dan Teknik Lanjutan untuk systemctl
The systemctl command supports not only basic start/stop operations, but also advanced management tasks. Here are some convenient options and techniques you should know.
Leveraging these features can greatly improve your Linux service management efficiency.
4.1 Menyenaraikan Kebergantungan Perkhidmatan
In Linux, some services depend on other units (services, mounts, targets, etc.). To check dependencies, use list-dependencies:
systemctl list-dependencies [service name]
Example:
systemctl list-dependencies nginx.service
This command shows related units in a tree format—helpful for analyzing startup order and indirect dependencies.
4.2 Melihat Kandungan Fail Unit
If you want to check the details of a unit’s configuration, you can display the actual unit file:
systemctl cat [service name]
Example:
systemctl cat ssh.service
This shows the file path and its contents, letting you quickly see any custom settings.

4.3 Memuat Semula Fail Unit
If you manually modify a unit file, use daemon-reload to apply changes:
sudo systemctl daemon-reexec
Or, more commonly:
sudo systemctl daemon-reload
This reloads unit files in systemd, so changes take effect. If settings don’t seem to apply, try this command first.
4.4 Memeriksa Log Perkhidmatan (Suplemen)
While not a systemctl command itself, journalctl is useful for checking service logs:
journalctl -u [service name]
Example:
journalctl -u docker.service
This lets you review startup errors and restart history—an essential troubleshooting step.
5. Masalah Biasa dan Penyelesaiannya
Apabila mengurus perkhidmatan dengan systemctl, perkara tidak selalu berjalan seperti yang dijangka. Bahagian ini menerangkan isu‑isu biasa dan cara menyelesaikannya.
Bersedia untuk “perkhidmatan tidak dapat dimulakan” atau “tidak dapat mencari punca” dengan mengetahui langkah‑langkah penyelesaian masalah asas ini.
5.1 Penyelesaian Masalah Apabila Perkhidmatan Tidak Dapat Dimulakan
Anda mungkin melihat ralat seperti:
Job for apache2.service failed because the control process exited with error code.
See "systemctl status apache2.service" and "journalctl -xe" for details.
Untuk mengenal pasti punca, semak langkah‑langkah berikut mengikut urutan:
- Semak status
systemctl status [service name]
- Semak log ralat
journalctl -xe
- Muat semula fail unit Jika anda baru sahaja mengedit fail unit, muat semula dengan:
sudo systemctl daemon-reload
- Semak konflik port Lihat sama ada proses lain sudah menggunakan port tersebut:
sudo netstat -tulnp | grep [port number]
5.2 Cara Membaca Mesej Ralat dalam Perintah status
Apabila anda menjalankan systemctl status, anda akan melihat keadaan perkhidmatan serta mesej log terkini. Contohnya:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
Active: failed (Result: exit-code) since Fri 2025-04-18 12:00:00 JST; 5s ago
Process: 12345 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=1/FAILURE)
Ini membolehkan anda dengan cepat mengesan kegagalan (contoh, “Active: failed”, “status=1/FAILURE”) dan proses mana yang mengembalikan ralat.
Baris Loaded menunjukkan laluan fail unit, memudahkan anda mengenal pasti fail konfigurasi yang perlu diedit.
5.3 Apabila Perkhidmatan Berhenti Secara Tidak Dijangka
Jika perkhidmatan dimulakan tetapi kemudian berhenti serta‑merta, punca biasa termasuk:
- Ralat dalam fail konfigurasi
- Konflik port
- Kekurangan fail atau direktori yang diperlukan
- Kebenaran pelaksanaan yang tidak mencukupi
Untuk menyelesaikannya, cuba langkah berikut:
- Semak dan sahkan fail konfigurasi (contoh,
nginx -tatauapachectl configtest) - Ikuti log terperinci dengan
journalctl -u [service name] - Pastikan direktori yang diperlukan (contoh,
/var/run/xxx) wujud; cipta jika diperlukan
5.4 Tidak Dapat Memulakan Perkhidmatan dalam Keadaan masked
Jika anda melihat ralat ini:
Failed to start example.service: Unit example.service is masked.
Perkhidmatan berada dalam keadaan masked (dinyahaktifkan sepenuhnya dan disekat daripada dimulakan). Nyahmask dengan:
sudo systemctl unmask [service name]
Kemudian anda boleh memulakan perkhidmatan seperti biasa.
6. Ringkasan
Pengurusan perkhidmatan dalam Linux merupakan bahagian penting dalam operasi sistem harian. Perintah systemctl memainkan peranan utama, membolehkan anda menyemak senarai perkhidmatan dan mengurusnya dengan cekap.
Artikel ini telah menerangkan perkara‑perkara berikut menggunakan kata kunci “systemctl list”:
Apa yang Boleh Anda Lakukan dengan Perintah systemctl (Ulasan)
- Semak senarai perkhidmatan
- Paparkan perkhidmatan yang sedang aktif (
list-units --type=service) - Senaraikan semua perkhidmatan termasuk yang tidak aktif ( pilihan
--allatau--state=) - Tunjukkan fail unit perkhidmatan dan status permulaan mereka (
list-unit-files) - Operasi perkhidmatan asas
- Mulakan, hentikan, mulakan semula, dan semak status (start / stop / restart / status)
- Dayakan/nyahdayakan permulaan automatik (enable / disable / is-enabled)
- Operasi lanjutan dan penyelesaian masalah
- Semak kebergantungan, lihat fail unit, muat semula konfigurasi
- Selidik ralat menggunakan log dan semakan status
Amalan Terbaik untuk Pengurusan Perkhidmatan
- Sentiasa semak status sebelum membuat perubahan (perintah
status) - Ketahui status auto‑mula (
is-enabledcommand) - Selepas membuat perubahan, sentiasa jalankan
daemon-reload - Untuk isu, semak log dengan
journalctl
Pemeriksaan teliti seperti ini memastikan penyampaian perkhidmatan yang stabil dan penyelesaian masalah yang lebih cepat dalam pentadbiran sistem Linux.
Untuk Pembelajaran Lanjutan
Jika anda ingin belajar lebih lanjut, pertimbangkan untuk menerokai topik seperti:
- Sasaran systemd (dan perbezaan daripada tahap jalan)
- Tugas dijadualkan dengan
systemd-timer - Cara mencipta dan mengurus fail unit tersuai
7. Soalan-soalan Lazim Ditanya (FAQ)
Bahagian ini merangkumkan soalan-soalan lazim ditanya dan jawapan tentang arahan systemctl dan senarai perkhidmatan. Walaupun anda selesa dengan asas-asas, semak ini untuk rujukan pantas.
Q1. Apakah perbezaan antara arahan systemctl dan service?
A1.
systemctl adalah arahan pengurusan perkhidmatan berasaskan systemd, dan merupakan standard untuk kebanyakan pengagihan Linux moden (Ubuntu, CentOS, Fedora, dll.).
Sebaliknya, service adalah daripada sistem SysVinit yang lebih lama. Walaupun ia kadang-kadang dikekalkan untuk keserasian, systemctl disyorkan untuk persekitaran systemd.
Q2. Apakah perbezaan antara list-units dan list-unit-files?
A2.
list-unitsmemaparkan unit yang dimuatkan pada masa ini (aktif atau digunakan sebelum ini) .list-unit-filesmenyenaraikan semua fail unit dan status daya hidup/matikan mereka . Fikirkan ia sebagai perbezaan antara “apa yang sedang dijalankan sekarang” dan “apa yang dikonfigurasi untuk dijalankan.”
Q3. Bolehkah saya memulakan perkhidmatan dalam keadaan “static”?
A3.
Ya, anda boleh memulakan perkhidmatan secara manual dalam keadaan static, tetapi anda tidak boleh dayakan ia untuk dimulakan secara automatik. Ini kerana perkhidmatan statik direka untuk dimulakan sebagai pergantungan unit lain.
Q4. Saya tidak boleh memulakan perkhidmatan yang disekat. Apa yang perlu saya lakukan?
A4.
masked bermaksudkan “dilumpuhkan sepenuhnya.” Nyahsekat dengan:
sudo systemctl unmask [service name]
Selepas itu, anda boleh memulakannya secara normal.
Q5. Adakah GUI untuk menyenaraikan status perkhidmatan?
A5.
Bergantung pada pengagihan anda, alat seperti gnome-system-monitor, KSysGuard, atau Cockpit mungkin membolehkan anda menyemak status perkhidmatan melalui GUI. Walau bagaimanapun, untuk operasi lanjutan, systemctl kekal sebagai kaedah yang paling boleh dipercayai.
Q6. Di mana saya patut letakkan fail unit tersuai?
A6.
Biasanya, letakkan ia di /etc/systemd/system/. Selepas mengedit, jangan lupa jalankan:
sudo systemctl daemon-reload
Kemudian urus seperti biasa dengan start atau enable.

