Saya memiliki Mesin Fedora 23.
Saya memiliki skrip bash sinkronisasi direktori / file yang menyinkronkan direktori lokal / home saya ke direktori jarak jauh (di mesin NAS). Saya menjalankannya secara manual tetapi saya ingin membuat layanan systemd dan membuatnya lebih fleksibel, karena orang lain menggunakan PC saya dengan kredensial pengguna mereka sendiri, saya ingin tahu kapan seorang pengguna login dan memulai layanan saya setelah itu.
Apakah ada sesuatu yang dapat saya lakukan dari file systemd layanan saya atau apakah saya harus memeriksanya dari kode saya di skrip?
Saya hanya perlu memastikan bahwa saya memiliki akses ke variabel lingkungan (seperti $ USER) dan menjalankannya sebagai layanan.
Sumber utama dokumentasi saya adalah tautan ini https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sect-Managing_Services_with_systemd-Unit_Files.html
systemctl --user
berfungsi pada F23?76 loaded units listed
..bashrc
saat login, lalu dengarkan sinyal logout Gnome dan matikan sendiri.Jawaban:
Gunakan systemd itu sudah termasuk dukungan untuk sesi pengguna, sebenarnya Anda harus sudah bergantung padanya (tanpa disadari).
Buat direktori layanan
Buat edit file layanan (vim, gedit, geany - apa pun yang Anda inginkan)
Seharusnya terlihat seperti ini, jika ini adalah layanan permanen.
Tapi sepertinya Anda lebih suka memicunya sekali, lalu baik-baik saja, jadi gunakan konfigurasi oneshot seperti ini:
Ini tentu saja mengasumsikan bahwa skrip Anda dapat dieksekusi, yaitu:
Jika tidak, Anda harus menambahkan path ke interpreter masing-masing:
Sekarang muat ulang systemd (dan login ulang untuk kepentingan pengujian)
Jika Anda memerlukan informasi lebih lanjut, lihat Arch-Wiki misalnya. Utas askubuntu ini memiliki berbagai ide, termasuk ide saya.
Anda dapat memperluas perilaku (jika Anda root) ke pengguna lain dengan mendefinisikan layanan secara global. Untuk melakukan ini, Anda perlu membuat file layanan di / usr / share / systemd / user / tidak dalam $ HOME / .local / share / systemd / user .
sumber
Saya tahu ini beberapa tahun, tetapi jawaban dari anx hanya membantu saya keluar. Jadi, saya kira itu masih relevan. Juga, ini lebih dari komentar, tapi saya tidak punya hak istimewa itu jadi saya mempostingnya sebagai "jawaban". Bagaimanapun ...
Menjalankan Linux Mint 19, saya tidak bisa "mengaktifkan" layanan ketika skrip terletak di '$ HOME / .local / share / systemd / user'. Mencoba melakukannya selalu mengakibatkan kesalahan. Namun, saya bisa memulainya dengan baik dari direktori '$ HOME / .local / share / systemd / user'. Setelah memindahkan skrip ke '/ usr / share / systemd / user /', systemd memungkinkan saya untuk mengaktifkannya tanpa masalah.
sumber