Dalam panduan ini, saya akan membahas cara membuat layanan khusus pengguna di Linux dan cara mengelolanya menggunakan systemctl.
Alasan Memiliki Layanan Pengguna Normal
Layanan pengguna normal berbeda dari layanan sistem. Layanan pengguna normal adalah layanan login yang berpusat pada pengguna. Layanan ini hanya akan berfungsi pada sesi pengguna yang membuatnya.
Cara Membuat Layanan Pengguna Normal
Layanan khusus pengguna di Linux ditempatkan di ~/.config/systemd/user direktori. Jika direktori ini tidak ada, maka direktori tersebut dapat dibuat.
mkdir -P ~ / .config / sistemd / penggunaItu -P flag digunakan untuk membuat direktori induk jika diperlukan. Itu ~ menunjukkan direktori home pengguna lokal dan setara dengan /home/pengguna sedangkan titik sebelum file konfigurasi membuatnya tersembunyi. Mari kita buat file skrip bash sederhana yang akan menulis penggunaan memori ke teks setiap 30 menit. Saya membuat skrip dengan nama skrip.sh .
#! /bin/bashketika BENAR
Mengerjakan
bebas -M >> / rumah / pengguna / file saya.txt
tidur 1800
Selesai
Skrip ini dapat dibuat di mana saja, namun pastikan jalur yang ditentukan di dalam skrip adalah jalur absolut.
Sekarang, mari buat layanan yang akan menjalankan skrip di atas di latar belakang. Luncurkan editor teks apa pun, seperti Nano atau Vim, dan tempelkan baris di bawah ini ke dalamnya.
[ Satuan ]Keterangan =Layanan Saya
[ Melayani ]
Jenis =sederhana
Mulai Eksekutif = / tempat sampah / pesta / rumah / pengguna / skrip.sh
Mengulang kembali = saat gagal
[ Install ]
Dicari Oleh =default.target
Di bagian [Unit], Keterangan direktif hanya berisi nama layanan. Perhatikan bahwa tidak boleh lebih dari 80 karakter.
Bagian [Layanan] berisi tiga arahan penting. Pertama, itu Jenis ; yang sederhana , Kemudian Mulai Eksekutif berisi skrip khusus kami yang dapat dieksekusi. Layanan hanya akan dimulai ulang ketika terjadi kegagalan.
Bagian [Instal] berisi Dicari Oleh arahan yang mana default.target , menyiratkan bahwa layanan akan diaktifkan pada status sistem ketika mencapai tingkat proses default, yang biasanya multi-pengguna.target atau grafis.target.
Sekarang, simpan file tersebut di ~/.config/systemd/user direktori dengan nama apa pun; Saya menamainya layanan saya.layanan .
Cara Mengelola Layanan Pengguna Normal
Untuk mengelola layanan pengguna normal, perintah systemctl digunakan dengan -pengguna bendera. Itu -pengguna bendera menandakan bahwa pengguna menghubungi manajer layanan, bukan sistem.
Setelah membuat file layanan khusus pengguna, langkah penting pertama adalah memuat ulang file konfigurasi systemd.
sistemctl --pengguna daemon-reloadIni akan menerapkan perubahan.
Untuk mengetahui apakah layanan sedang berjalan atau tidak, gunakan systemctl, dengan -pengguna bendera dan opsi.
sistemctl --pengguna status [ Nama layanan ]
Perintah lain untuk mengelola layanan pengguna normal disebutkan di bawah:
sistemctl --pengguna awal [ Nama layanan ]sistemctl --pengguna memungkinkan [ Nama layanan ]
sistemctl --pengguna berhenti [ Nama layanan ]
sistemctl --pengguna cacat [ Nama layanan ]
sistemctl --pengguna mengulang kembali [ Nama layanan ]
Cara Membuat Layanan Pengguna Normal dengan Izin Admin Sistem
Ada banyak layanan yang dibuat pengguna, namun memerlukan izin admin untuk dijalankan. Layanan tersebut dapat dibuat dengan menambahkan a Pengguna arahan ke bagian [Layanan].
Itu Pengguna direktif dapat digunakan untuk menyebutkan nama pengguna yang izinnya diperlukan untuk menjalankan layanan, seperti admin . Jadi, jika pengguna biasa ingin membuat layanan yang memerlukan izin admin, cukup tambahkan Pengguna=admin di bagian [Layanan] akan melakukan pekerjaan itu. Namun layanan ini akan tetap aktif selama adminnya aktif. Perlu diperhatikan bahwa layanan ini tidak dapat dikontrol langsung oleh admin.
Kesimpulan
Pengguna biasa juga dapat membuat layanan systemd, tetapi layanan tersebut harus ditempatkan di dalamnya ~/.config/systemd/user direktori. Layanan ini berjalan selama pengguna yang membuatnya login. Layanan ini juga dikelola melalui perintah systemctl tetapi dengan -pengguna bendera. Yang memberitahu systemd bahwa layanan dipanggil oleh pengguna, bukan sistem. Dalam panduan ini, saya membuat layanan pengguna normal khusus dan menyebutkan perintah systemctl untuk mengelolanya. Selain itu, saya juga menyoroti metode untuk membuat layanan yang memerlukan hak administratif.