Saat Anda perlu memecahkan masalah layanan jaringan, langkah pertama adalah memastikan bahwa layanan berjalan.
Jika layanan memiliki skrip inisialisasi (init) yang terinstal, Anda dapat menggunakanservice
perintah untuk memulai, menghentikan, dan memeriksa status layanan. Perintah ini mereferensikan layanan dengan menggunakan skrip initnya, yang disimpan di /etc/init.d
direktori untuk distribusi berbasis Debian® danetc/rc.d/init.d
direktori untuk distribusi berbasis Red Hat®.
Jika Anda tidak mengetahui nama yang digunakan sistem untuk suatu layanan, periksa salah satu direktori sebelumnya dengan menggunakan ls
perintah diikuti dengan nama direktori. Beberapa nama bervariasi tergantung pada distribusi Anda. Misalnya, Apache® adalah httpd
di CentOS® dan apache2
pada sistem operasi Ubuntu®.
Catatan :Banyak distribusi Linux® yang lebih baru menggunakan systemd
alih-alihnetstat
untuk memeriksa layanan. Jika Anda menggunakan systemd
, ganti semuaservice <service-name> <status>
perintah dengan systemct1 <status> <service-name>
.Untuk informasi lebih lanjut tentang systemct1
perintah, lihat Fedora™SysVinit to Systemd Cheatsheet.
Periksa status layanan
Layanan dapat memiliki salah satu status berikut:
start
:Layanan telah dimulai.stop
:Layanan telah berhenti berjalan.restart
:Layanan sedang reboot dan akan dimulai setelah proses selesai.
Contoh berikut menunjukkan cara memeriksa status httpd
di CentOS dengan menggunakan service
perintah:
$ sudo service httpd status
httpd is stopped
Mulai layanan
Jika layanan tidak berjalan, Anda dapat menggunakan service
perintah untuk memulainya. Contoh berikut memulai httpd
layanan:
$ sudo service httpd start
Starting httpd: [ OK ]
Jika aplikasi tidak dapat dijalankan, sistem akan melaporkan kegagalan dan biasanya menampilkan pesan yang menunjukkan penyebab masalah.
$ sudo service httpd start
Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
[FAILED]
Gunakan netstat untuk menemukan konflik port
Pada contoh sebelumnya, httpd
tidak dapat dimulai karena sesuatu sudah mendengarkan di port. Untuk mengetahui apa yang sedang didengarkan, Anda dapat menjalankannetstat
perintah.
Jalankan perintah berikut untuk menampilkan daftar program yang mendengarkan dan port yang mereka gunakan:
# netstat -plnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 10.176.77.113:3306 0.0.0.0:* LISTEN 28509/mysqld
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2113/nc
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1115/master
tcp 0 0 :::22 :::* LISTEN 1051/sshd
Outputnya menunjukkan bahwa nc
program (yang muncul di Program name
kolom) sedang mendengarkan pada port 80 (yang muncul di Local Address
kolom). Menghentikan program ini akan mengaktifkan httpd
untuk dimulai.
Catatan :Untuk informasi lebih lanjut tentang netstat
perintah, lihat Memeriksa port mendengarkan dengan netstat.
Periksa status xinetd
Jika layanan tidak berjalan, mungkin karena server super seperti Extended Internet Service Daemon (xinetd
) digunakan untuk meluncurkan program saat koneksi diterima. Jika ini masalahnya, memulai layanan mungkin telah menyelesaikan masalah. Jalankan perintah berikut untuk memverifikasi bahwa masalah telah teratasi:
$ sudo service xinetd status
xinetd (pid 8795) is running...
Periksa log
Jika Anda tidak dapat memulai layanan, tinjau log Anda untuk melihat apakah log tersebut berisi informasi tentang masalah tersebut.
Langkah selanjutnya
Setelah Anda yakin bahwa aplikasi sedang berjalan, periksa sumber daya server untuk memverifikasi berapa banyak yang digunakan aplikasi Anda.