Sistem başlatmayla başlamak istediğim bir hizmetim var. Bunun için şablon olarak ap @ .service tanımı oluşturdum, çünkü çok sayıda örnek olabilirdi. Kök systemd tanımlanmıştırSudo su - myuser'dan sonra 'systemctl --user' kullanarak bir kullanıcı sistemini kontrol edebilir miyim?
, bu iyi çalışıyor ve başlar ve sistemle hizmet durdurur. Hizmet örneği, beklendiği gibi systemctl enable [email protected]
ile yüklenir. Kök ayrıca hizmeti sorunsuz bir şekilde başlatıp durdurabilir. Servis, kullanıcı tarafından kontrol edilen kendi hesabımda (myuser) çalışır, kullanıcı @ myuser, ap @ .service şablonunda kontrol edilir.
Ama kullanıcı 'myuser' sistem güvenliğini tehlikeye atmadan, başlangıç ve kendi hizmetini durdurmak isterler.
Bir kullanıcı systemd kullanarak geçiş veloginctl enable-linger myuser
ile kalıcı sağladı. Daha sonra ~ myuser/.config/systemd/user dizininde tanımlanan hizmeti etkinleştiririm. Servis şimdi tasarlandığı gibi sistemle başlıyor ve temiz duruyor. Bir terminale 'myuser' olarak girersem
systemctl --user start [email protected]
ve
systemctl --user stop [email protected]
her ikisi de mükemmel çalışır.
Ancak, farklı bir kullanıcı (kullanıcı2) olarak oturum açıp bir terminalde sudo su - myuser
gerçekleştirirseniz, systemctl --user
komutları artık "D-Bus bağlantısı alınamadı: böyle bir dosya veya dizin yok" hata iletisiyle başarısız oluyor.
nasıl kullanıcıyı geçmek için bir sudo su - myuser
komuta sonra işe systemctl --user
etkinleştirebilirim?
CWD'niz hala diğer kullanıcının ana dizini mi? Çağıran kullanıcının geçerli dizini görmesi için izninin olmaması durumunda, bazı yardımcı programların sorunları vardır. – Dave
Merhaba Dave ... ev dizini, - tarafından sudo komutunda zorlandı. CWD, yeni kullanıcının ana dizinine değişti. – NeilCasey
Ah Tamam. Beni görmezden gelin. – Dave