No pacote Debian não existe um arquivo systemd service / unit para o rtorrent. Você precisa criar seu próprio arquivo de unidade. Você pode encontrar exemplos aqui: link
Como faço para que o rtorrent seja iniciado após a reinicialização?
Eu tentei executar
systemctl reenable rtorrent
e reinicialize a máquina, mas não há nenhum processo rtorrent em execução.
Eu posso iniciá-lo usando o seguinte comando de tela:
screen -d -m -S rtorrent rtorrent
Aqui estão minhas dependências
systemctl list-dependencies rtorrent
rtorrent.service
● ├─system.slice
● └─basic.target
● ├─paths.target
● │ └─acpid.path
● ├─slices.target
● │ ├─-.slice
● │ └─system.slice
● ├─sockets.target
● │ ├─acpid.socket
● │ ├─avahi-daemon.socket
● │ ├─dbus.socket
● │ ├─docker.socket
● │ ├─systemd-initctl.socket
● │ ├─systemd-journald-dev-log.socket
● │ ├─systemd-journald.socket
● │ ├─systemd-shutdownd.socket
● │ ├─systemd-udevd-control.socket
● │ └─systemd-udevd-kernel.socket
● ├─sysinit.target
● │ ├─debian-fixup.service
● │ ├─dev-hugepages.mount
● │ ├─dev-mqueue.mount
● │ ├─kmod-static-nodes.service
● │ ├─networking.service
● │ ├─plymouth-read-write.service
● │ ├─plymouth-start.service
● │ ├─proc-sys-fs-binfmt_misc.automount
● │ ├─sys-fs-fuse-connections.mount
● │ ├─sys-kernel-config.mount
● │ ├─sys-kernel-debug.mount
● │ ├─systemd-ask-password-console.path
● │ ├─systemd-binfmt.service
● │ ├─systemd-journal-flush.service
● │ ├─systemd-journald.service
● │ ├─systemd-modules-load.service
● │ ├─systemd-random-seed.service
● │ ├─systemd-sysctl.service
● │ ├─systemd-tmpfiles-setup-dev.service
● │ ├─systemd-tmpfiles-setup.service
● │ ├─systemd-udev-trigger.service
● │ ├─systemd-udevd.service
● │ ├─systemd-update-utmp.service
● │ ├─udev-finish.service
● │ ├─cryptsetup.target
● │ ├─local-fs.target
● │ │ ├─-.mount
● │ │ ├─boot.mount
● │ │ ├─systemd-fsck-root.service
● │ │ └─systemd-remount-fs.service
● │ └─swap.target
● │ ├─dev-disk-by\x2duuid-a2ba1307\x2dc5ae\x2d4e84\x2d87d9\x2dca704d4103fe.swap
● │ └─dev-disk-by\x2duuid-a2ba1307\x2dc5ae\x2d4e84\x2d87d9\x2dca704d4103fe.swap
● └─timers.target
● └─systemd-tmpfiles-clean.timer
Estou usando o Debian GNU / Linux 8.7 (jessie)
which rtorrent
/usr/local/bin/rtorrent
Eu editei o /etc/systemd/user/rt.service para isso:
[Unit]
Description=rTorrent
After=network.target
[Service]
Type=forking
KillMode=none
ExecStart=/usr/bin/screen -d -m -fa -S rtorrent /usr/local/bin/rtorrent
ExecStop=/usr/bin/killall -w -s 2 /usr/local/bin/rtorrent
WorkingDirectory=%h
[Install]
WantedBy=default.target
Quando executo esse comando e obtenho um erro.
systemctl --user start rt
Failed to get D-Bus connection: Connection refused
libpam-systemd está instalado:
apt-get install libpam-systemd
Reading package lists... Done
Building dependency tree
Reading state information... Done
libpam-systemd is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
e eu reiniciei a máquina
uptime
18:26:03 up 5 min, 1 user, load average: 0.06, 0.22, 0.13
No pacote Debian não existe um arquivo systemd service / unit para o rtorrent. Você precisa criar seu próprio arquivo de unidade. Você pode encontrar exemplos aqui: link
Eu não sei nada sobre rTorrent , mas de acordo com as informações fornecidas pela sua pergunta, você deve ser capaz de criar um serviço para Systemd . Eu testei no meu sistema ( Arch Linux ) e funcionou.
Primeiro, você precisa criar um arquivo *.service
. Eu adicionei um exemplo para esse arquivo abaixo. Onde criar este arquivo depende de suas necessidades. Se você quiser iniciar o rTorrent na inicialização, você deve criar o arquivo em /etc/systemd/system/
. Se você quiser iniciar o rTorrent no login, você deve criá-lo em /etc/systemd/user/
(para cada usuário) ou ~/.config/systemd/user/
(somente para você).
Depois de criar este arquivo, você poderá iniciá-lo. Eu assumirei que você nomeou o arquivo rtorrent.service
, então o serviço é chamado de rtorrent
. Se você salvou o arquivo em /etc/systemd/system/
, você pode iniciar o aplicativo executando
# systemctl start rtorrent
como root. Se você salvou em /etc/systemd/user/
ou ~/.config/systemd/user/
, você precisa ligar
$ systemctl --user start rtorrent
como usuário local. Quando estiver funcionando, você pode substituir start
por enable
para permitir que o aplicativo inicie na reinicialização / login.
De acordo com Neste post do , você precisa instalar o libpam-systemd
antes de poder usar os serviços do usuário no Debian. Você também pode precisar reiniciar o sistema.
Acho que o seu arquivo de serviço deve basicamente se parecer com o meu exemplo abaixo. Você tem que remover User=...
se você criou um serviço de usuário.
[Unit]
Description=rTorrent
After=network.target auditd.service
[Service]
Type=forking
ExecStart=/usr/bin/screen -dmS rtorrent /bin/bash -c \
'echo "$$$$" > %h/.rtorrent.pid && exec /usr/local/bin/rtorrent'
ExecStop=/bin/bash -c '/bin/kill -15 "$$(cat %h/.rtorrent.pid)"'
ExecStop=/bin/bash -c 'while /bin/kill -0 "$$(cat %h/.rtorrent.pid)"; do /bin/sleep 0.1; done'
ExecStopPost=bin/rm %h/.rtorrent.pid
Restart=on-failure
User=<insert some username here>
WorkingDirectory=~
[Install]
WantedBy=multi-user.target
Você precisa executar systemctl [--user] daemon-reload
depois de alterar o arquivo. No meu exemplo acima, eu salvo o PID do rtorrent em ~/.rtorrent.pid
antes de iniciá-lo. Para parar o aplicativo, eu envio SIGTERM
(15) para rTorrent (usando PID de ~/.rtorrent.pid
) e aguardo até que o processo pare.
Tags debian rtorrent linux debian-jessie