Systemd с rtorrent в tmux

Мне не удалось запустить tmux & rtorrent с системным файлом systemd. Мой rtorrent.service :

 [Unit] Description=rTorrent Documentation=https://github.com/rakshasa/rtorrent After=network.target local-fs.target [Service] Type=forking KillMode=none User=rtorrent ExecStart=/usr/bin/tmux -S /tmp/rtorrent.sock new-session -d -s rtorrent \'rtorrent -n -O import=/etc/rtorrent.rc\' ExecStop=/usr/bin/tmux -S /tmp/rtorrent.sock send-keys -t rtorrent Cq WorkingDirectory=/home/rtorrent [Install] WantedBy=default.target 

(Использование Type=oneshot с RemainAfterExit=yes не работает, и я не уверен, что это решение в любом случае. Я думаю, что запуск tmux таким образом должен выполняться с помощью Type=forking . Пожалуйста, поправьте меня, если я ошибаюсь!)

Выход из systemctl status rtorrent :

 ● rtorrent.service - rTorrent Loaded: loaded (/etc/systemd/system/rtorrent.service; disabled) Active: failed (Result: exit-code) since Mon 2015-04-27 10:48:37 AEST; 22s ago Docs: https://github.com/rakshasa/rtorrent Process: 4433 ExecStart=/usr/bin/tmux -S /tmp/rtorrent.sock new-session -d -s rtorrent 'rtorrent -n -O import=/etc/rtorrent/rtorrent.rc' (code=exited, status=1/FAILURE) Apr 27 10:48:37 vagrant tmux[4433]: usage: new-session [-AdDP] [-c start-directory] [-F format] [-n window-name] [-s session-name] [-t target-session] [-x width] [-y height] [command] Apr 27 10:48:37 vagrant systemd[1]: rtorrent.service: control process exited, code=exited status=1 Apr 27 10:48:37 vagrant systemd[1]: Failed to start rTorrent. Apr 27 10:48:37 vagrant systemd[1]: Unit rtorrent.service entered failed state. 

Переключение на пользователя rtorrent с помощью su позволяет мне попробовать команду ExecStart вручную – это прекрасно работает. Я затрудняюсь отлаживать это дальше.

Мысли? Благодаря!

One Solution collect form web for “Systemd с rtorrent в tmux”

systemd выполняет собственную интерпретацию значений Exec и других ключей. Поэтому вы не должны писать так, как будто это будет передано в sh -c или что-то в этом роде. В частности, если вы хотите рассматривать набор слов как один аргумент, цитируйте его, как обычно, и не избегайте кавычек. Рассмотрим этот пример из системных документов :

Пример:

 ExecStart=/bin/echo one ; /bin/echo "two two" 

Это будет выполняться /bin/echo два раза, каждый раз с одним аргументом: one и two two , соответственно. Поскольку указаны две команды, следует использовать Type=oneshot .

Таким ExecStart строка ExecStart должна быть:

 ExecStart=/usr/bin/tmux -S /tmp/rtorrent.sock new-session -d -s rtorrent 'rtorrent -n -O import=/etc/rtorrent.rc' 
  • Может ли несколько пользователей одновременно выполнять команды, используя tmate с отдельными курсорами в одном сеансе?
  • Коды клавиш для клавиш Caps Lock, Shift, Left Control и FN?
  • передача переменной tmux в shell-команду в tmux.conf
  • Отрегулируйте толщину границы в tmux
  • Контрольный код выхода в tmux
  • Достаточно установить параметр -g-prefix, чтобы изменить префикс ключа tmux
  • tmux выходит сразу после запуска
  • Уменьшить задержку управления c в xterm и tmux
  • RVM + TMUX-Повторяющиеся записи в $ PATH
  • Использование Ctrl + B меньше в tmux
  • Когда tmux входит в режим копирования, существует ли относительный номер строки, как Vim?
  • Linux и Unix - лучшая ОС в мире.