Systemd adalah manajer layanan yang memberi Anda fitur untuk mengelola daemon, pelacakan proses, pemasangan, pemasangan otomatis. Ini menggunakan grup kontrol Linux untuk mengelola tugas. Ini menggantikan initd yang lebih lama dan tersedia di Debian, Fedora, RedHat, ubuntu, centos, distribusi Linux arch.
Pada artikel ini, saya akan menunjukkan cara membuat layanan menggunakan systemd. Saya akan membuat skrip manual yang akan bertindak seperti proses untuk menemukan penggunaan disk sistem Linux.
Mari kita mulai. Buat skrip bash yang mengarahkan ulang tanggal dan penggunaan disk dalam file. Anda dapat membuat file di lokasi mana pun. Di sini saya akan membuat direktori yang dapat dieksekusi /usr/bin
$ sudo vim /usr/bin/script.sh
Salin dan tempel skrip berikut dan simpan file Anda.
#!/bin/bash# Skrip menghasilkan penggunaan disk oleh sistem dan disimpan dalam file sementara truedodate>> /var/storage-monitor.txtsudo du -sch />> /var/storage-monitor.txtsleep 120doneJadikan file tersebut dapat dieksekusi dengan menjalankan perintah berikut.
$ chmod +x /usr/bin/script.shSekarang, mari kita buat layanan untuk menjalankan skrip. Cukup buat file di direktori berikut. Perhatikan bahwa Anda dapat memberikan nama apa pun tetapi harus diakhiri dengan .service extension.
$ vim /etc/systemd/system/monitor-disk.serviceDan tambahkan berikut ini,
[Unit]Description=Layanan pemantauan disk sayaDocumentation=https://www.kernel.org/#After=networking.service[Service]Type=simpleUser=rootGroup=rootTimeoutStartSec=0Restart=on-failureRestartSec=30s#ExecStartPre=ExecStart=/usr/bin/script.shSyslogIdentifier=Diskutilization#ExecStop=[Install]WantedBy=multi-user.targetPenjelasan
- Bagian [Unit] terdiri dari deskripsi, detail dokumentasi. Di sini saya telah menyebutkan 'After' yang menyatakan layanan yang akan kita buat harus dijalankan terlebih dahulu.
- Bagian [Layanan] mendefinisikan jenis layanan, nama pengguna, grup, apa yang harus dilakukan jika gagal, batas waktu mulai ulang. Yang utama adalah 'ExecStart' yang mengatakan untuk memulai file skrip kami. Anda juga dapat menentukan 'ExecStartPre' untuk mendefinisikan apa pun sebelum file skrip yang sebenarnya. 'SyslogIdentifier' adalah kata kunci untuk mengidentifikasi layanan kami di syslog. Demikian pula, ExecStop adalah instruksi untuk mengatakan apa yang harus dilakukan untuk menghentikan layanan.
- Bagian [Install] digunakan untuk menentukan level target yang berbeda dalam sistem.
Simpan saja file dan mulai layanan menggunakan perintah systemctl.
$ systemctl start monitor-disk.service
Periksa status layanan menggunakan perintah status systemctl. Anda juga dapat melihat nama layanan, formulir file tempat layanan systemd dimuat, dokumentasi, proses yang berjalan, dan log.
$ systemctl status monitor-disk.service
Verifikasi bahwa skrip Anda berfungsi dengan benar dengan melihat file yang ditentukan dalam file skrip.
$ cat /var/storage-monitor.txt
Anda juga dapat memeriksa aktifkan, nonaktifkan fasilitas pengelola systemd.
$ systemctl aktifkan monitor-disk.service
$ systemctl nonaktifkan monitor-disk.service
Juga, periksa dengan menghentikan dan memulai ulang layanan. Tidak ada kesalahan yang harus dilakukan.
$ systemctl stop monitor-disk.service
$ systemctl restart monitor-disk.service
Systemd juga mengaktifkan logging default di syslog. Jadi, Anda dapat melihat log langsung layanan menggunakan perintah berikut. Cari kata kunci ‘SyslogIdentifier=Diskutilization’
Anda menolak dalam file layanan di atas.
$ tail -f /var/log/syslog
Kesimpulan
Artikel ini menunjukkan cara menjalankan skrip shell Anda sendiri sebagai layanan systemd. Kami harap Anda belajar bagaimana membuat layanan Anda sendiri. Silakan kirimkan masukan Anda.