Arch-linux sistemimdeki systemd kurulum ve kurulum işlemlerini yeni bitirdim (2012.09.07). Kaldırma initscripts
(ve yapılandırma dosyalarını kaldırdım).
Yapmak istediğim kök olmayan bir kullanıcı tarafından başlatılıp durdurulabilen bir hizmet oluşturmak. Hizmet, rtorrent çalıştıran ayrılmış bir ekran oturumu başlatmaktır. Ancak, bu hizmeti ayarlamış olan sistemdeki her kullanıcının, belirli bir örnek için özel olarak başlatılmasını (etkin) başlatmasını istiyorum. Bir insan bunu nasıl yapacak?
Sistemin kullanıcı servislerini desteklediğini okuduğumu hatırlıyorum, ancak bunun nasıl kurulacağı ya da aradığım şeyle ilgili olup olmadığı hakkında herhangi bir bilgi bulamadım.
Sistem için kullandığım servis dosyası:
[Unit]
Description=rTorrent
[Service]
Type=forking
ExecStart=/usr/bin/screen -d -m -S rtorrent /usr/bin/rtorrent
ExecStop=/usr/bin/killall -w -s 2 /usr/bin/rtorrent
GÜNCELLEME # 1 :
Buradaki ve buradaki man sayfalarını okuduktan sonra , sistemin nasıl daha iyi çalıştığını biliyorum. Özellikle User=
ve WorkingDirectory=
seçeneklerinin kullanılması, kullanıcının bir oturumda hizmetin başlatılmasına izin verir. Ancak sorun devam kullanıcı kendileri olmayanlar şeklinde kalır start
, stop
, enable
, veya disable
hizmet. Bir erişim engellendi hatası verilir systemctl
.
GÜNCELLEME # 2 :
Öncelikle, sadeleştirmek ve systemd'nin kullanıcı oturumu (yine de tamamlanmamış) özelliğinin daha iyi kullanılması için sofar'ın kullanıcı oturumu-birimlerini kullandım ve yapılandırma tavsiyesine uydum.
DBus'un şu anki sürümünde (1.6.4-1) komut hatalarını DBUS_SESSION_BUS_ADDRESS
kullanarak ortam değişkeninin anlamını ayarlamadığı bir hata varmış gibi görünüyor systemctl --user
:
Failed to get D-Bus connection: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
Değişken şöyle görünmelidir:
DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/USERUID/dbus/user_bus_socket"
nerede USERUID belirli bir kullanıcının UID olması gerekiyor.
sudo
, kullanıcılar için basit bir kurulum yapabilir ve yukarıdaki yorumumda da belirtildiği gibi kendi servis dosyalarını kontrol etmelerini sağlayabilirim. Ancak bu çözüm, kullanıcının diğer birçok hizmeti de kontrol etmesine izin verir ...
sudo
belgelerini okumuş olsaydınız, sudoers (5) , bir komutun argümanlarını kısıtlamak için birçok örneğe sahipti .