Apakah mungkin untuk secara manual menjalankan unit layanan yang dipasangkan dengan timer sistemd untuk keperluan pengujian?

21

Saya memiliki timer / unit-set layanan yang harus dijalankan sekali sehari dalam --userkondisi. Itu muncul dengan systemctl --user statusdan masuk jurnal tetapi ada bagian dari perintah yang gagal.

Tampaknya sesuatu dalam perintah tidak ditafsirkan dengan benar. Saya ingin menyelesaikan dengan file unit dan menjalankan layanan, memeriksa log, dll untuk men-debug masalah; namun mengedit timer untuk memicu satu menit di masa depan, menunggu, dan memeriksa log itu ... membosankan.

Bisakah melakukan sesuatu seperti systemctl --user execute xxxxxx.servicemenjalankan saja hal yang seolah-olah timernya dipicu?

Gus
sumber

Jawaban:

12

Anda dapat mengaktifkan unit apa pun secara manual, kecuali jika mengandung RefuseManualStart=yesdan / atau RefuseManualStop=yesarahan (yang melakukan persis apa yang mereka katakan). Hanya masalah systemctl --user start <whatever>(dan systemctl --user stop <whatever>untuk melakukan yang sebaliknya).

Mengutip systemctl (1) :

mulai POLA ...

Mulai (aktifkan) satu atau lebih unit yang ditentukan pada baris perintah.

<...>

hentikan POLA ...

Stop (nonaktifkan) satu atau lebih unit yang ditentukan pada baris perintah.

intelfx
sumber
Tidak bekerja di sini:Failed to restart {foo}.service: Operation refused, unit {foo}.service may be requested by dependency only.
eMPee584
1
@ eMPee584 Karena jawaban ini ditulis, systemd memperoleh arahan baru RefuseManualStart=dan RefuseManualStop=(yang melakukan persis apa yang mereka katakan). Saya telah memperbarui jawaban saya untuk menyebutkan itu.
intelfx