systemctl start/stop service: Cara Mengatur Script Pemula dan Proses Respawn di Ubuntu, CentOS, Redhat Linux
Diterbitkan: 2021-06-09Bagaimana cara menulis skrip startup untuk systemd?
systemd
adalah service management utility
terbaru di semua versi terbaru dari distribusi Linux seperti OS Ubuntu, Redhat OS, CentOS.
Itu sebabnya versi Ubuntu 17.4 dan Redhat 7.4 sekarang mendukung systemctl command
sebagai skrip pemula. Jika Anda menggunakan OS Linux versi lama maka Anda mungkin perlu melihat bagian bawah halaman ini untuk melihat init.d script
lebih lama
Kita akan membahas hal-hal di bawah ini dalam tutorial ini
- Menyiapkan unit layanan systemd
- Bagaimana cara
configure
systemd? - Bagaimana cara
enable
systemd? - Bagaimana memulai proses secara otomatis menggunakan systemd?
- Bagaimana cara menghentikan dan
respawn
proses menggunakan systemd?
Langkah-Langkah Setup untuk tutorial ini:
Prerequisite:
Kami telah mengkompilasi versi program CrunchifyAlwaysRunningProgram.java di folder /tmp/crunchify
. Proses java ini akan terus berjalan di latar belakang selamanya. Anda dapat mengunduh program dari sini.
Setelah Anda mengunduhnya, try to compile
dan jalankan untuk memastikannya berfungsi.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
root @ crunchify : / tmp / crunchify # ls -ltr - rw - r -- r -- 1 root root 120 Oct 6 17 : 57 crunchify . tar . gz drwxr - xr - x 2 root root 4096 Oct 6 18 : 01 tomcat drwxr - xr - x 2 root root 4096 Oct 6 18 : 02 java - rw - r -- r -- 1 root root 621 Oct 7 16 : 06 package - rwxrwxrwx 1 root root 838 Oct 7 16 : 07 CrunchifyAlwaysRunningProgram . java - rwxrwxrwx 1 root root 1295 Oct 8 14 : 38 CrunchifyAlwaysRunningProgram . class root @ crunchify : / tmp / crunchify # javac CrunchifyAlwaysRunningProgram.java root @ crunchify : / tmp / crunchify # java CrunchifyAlwaysRunningProgram always running program == > Sun Oct 08 14 : 39 : 14 UTC 2017 always running program == > Sun Oct 08 14 : 39 : 16 UTC 2017 . . . . . . . . . |
Anda dapat mengetik CTRL + C
untuk keluar dari program.
Sekarang mari kita mulai menyiapkan skrip startup otomatis systemd untuk program di atas.
Langkah 1
- Masuk ke folder /lib/systemd/system
- Ketik
cd /lib/systemd/system
Langkah 2
- buat file
crunchify.service
(ubah nama file yang sesuai) - masukkan konten di bawah ini ke dalamnya
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[ Unit ] Description = Crunchify Java Process Restart Upstart Script After = auditd . service systemd - user - sessions . service time - sync . target [ Service ] User = root TimeoutStartSec = 0 Type = simple KillMode = process export JAVA_HOME =/ opt / java / jdk - 9 export PATH = $ PATH : $ JAVA_HOME / bin WorkingDirectory =/ tmp / crunchify ExecStart =/ opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram Restart = always RestartSec = 2 LimitNOFILE = 5555 [ Install ] WantedBy = multi - user . target |

Langkah-3
- Menyimpan file
- Berikan izin eksekusi menggunakan
chmod 755 crunchify.service
Langkah-4
- Muat crunchify.service menggunakan perintah
systemctl daemon-reload
- Aktifkan crunchify.service menggunakan perintah
systemctl enable crunchify.service
- Mulai crunchify.service menggunakan perintah
systemctl start crunchify
- Periksa status crunchify.service menggunakan perintah
systemctl status crunchify
Langkah-5
- Sekarang periksa apakah proses sedang berjalan atau tidak??
- Ketik perintah
ps -few | grep java
ps -few | grep java
untuk melihat semua proses Java yang berjalan - Anda harus melihat sesuatu seperti ini
1 2 3 |
root @ crunchify : / lib / systemd / system # ps -few | grep java root 28631 1 0 14 : 02 ? 00 : 00 : 03 / opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram root 28853 28226 0 14 : 46 pts / 0 00 : 00 : 00 grep java |
Itu berarti proses 28631
mulai menggunakan skrip pemula Anda. Anda mungkin memiliki ID proses yang berbeda.
Bagaimana cara memverifikasi apakah systemd crunchify.service Anda berfungsi atau tidak?
- Cobalah untuk mematikan proses menggunakan
kill -9 28631
dan Anda akan melihat proses baru harus dibuat secara otomatis. - Dalam kasus saya, ID proses baru
28887
dibuat
1 2 3 4 |
root @ crunchify : / lib / systemd / system # kill -9 28631 root @ crunchify : / lib / systemd / system # ps -few | grep java root 28887 1 17 14 : 48 ? 00 : 00 : 00 / opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram root 28900 28226 0 14 : 48 pts / 0 00 : 00 : 00 grep java |
Video: Lengkapi contoh penyiapan skrip pemula systemd Live:
Video ini berisi – Bagaimana cara Setup script systemd startup/upstart di CentOS, Redhat, Ubuntu Linux OS?
- Cara menjalankan skrip shell secara otomatis saat booting
- Cara Membuat Layanan systemd di Linux (CentOS 7)
- Bagaimana Mengkonfigurasi Layanan Linux untuk Mulai secara otomatis?
- Skrip startup sistem Centos 7
- Skrip startup systemd Ubuntu
Ingin mempelajari lebih lanjut tentang systemd? Berikut adalah lembar contekan untuk referensi Anda.
Saya harap Anda mempelajari everything about systemd command
dan menyiapkan skrip pemula di semua jenis OS Linux.
BERHENTI: HANYA Untuk Versi OS Lama
Jika Anda menjalankan older version
, maka Anda harus memiliki skrip dalam format ini.
- Pergi ke
/etc/init
- Buat file
crunchify.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# Run Crunchify's Java program indefinitely # description "Crunchify Java Process Restart Upstart Script" author "Crunchify.com (App Shah)" start on runlevel [ 2345 ] stop on runlevel [ ! 2345 ] respawn respawn limit 10 5 script su - root < < 'EOF' export JAVA_HOME =/ opt / java / jdk - 9 export PATH = $ PATH : $ JAVA_HOME / bin exec / opt / java / jdk - 9 / bin / java - cp / tmp / crunchify CrunchifyAlwaysRunningProgram EOF end script |
- Mulai saja layanan menggunakan
service crunchify start
- Ikuti langkah verifikasi yang sama seperti di atas
Beri tahu saya jika Anda melihat masalah saat menjalankan skrip pemula di lingkungan Anda. Nikmati hari Anda dan Selamat coding.