GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menjalankan Skrip Shell sebagai Layanan Systemd di Linux

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 120done 

Jadikan file tersebut dapat dieksekusi dengan menjalankan perintah berikut.

$ chmod +x /usr/bin/script.sh

Sekarang, 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.service

Dan 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.target

Penjelasan

  • 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.


Ubuntu
  1. Cara membuat layanan Systemd di Linux

  2. Linux – Lokasi Skrip Fsck?

  3. Cara membuat skrip Python berjalan seperti layanan atau daemon di Linux

  1. Cara menjalankan skrip shell saat startup

  2. Cara mengarahkan output dari layanan systemd ke file

  3. Bagaimana cara menjalankan skrip dengan systemd tepat sebelum dimatikan?

  1. Bagaimana Membuat File Sementara Di Shell Script?

  2. Bagaimana Cara Menjalankan Script Shell Di Latar Belakang?

  3. Bagaimana Menjalankan Skrip??