tmuxのシステムとrtorrent

tmuxのシステムとrtorrent

systemdサービスファイルを使用してtmuxとrtorrentを実行することはできません。私のもの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 C-q
WorkingDirectory=/home/rtorrent

[Install]
WantedBy=default.target

Type=oneshotwithを使用すると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非常に効果的でした。もうデバッグできません。

アイデア?ありがとうございます!

ベストアンサー1

Execsystemd には他のキー値に対する独自の解釈があります。したがって、これが伝えられるsh -cような文章を書いてはいけません。具体的には、単語グループを単一の引数として扱う場合は、通常どおり引用し、引用符をエスケープしないでください。この例を考えてくださいシステム文書:

例:

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

/bin/echoこれはそれぞれ1つの引数とを one使用して2回実行されますtwo two。 2つのコマンドが指定されているので、それを使用する必要 Type=oneshotがあります。

したがって、そのExecStart行は次のようになります。

ExecStart=/usr/bin/tmux -S /tmp/rtorrent.sock new-session -d -s rtorrent 'rtorrent -n -O import=/etc/rtorrent.rc'

おすすめ記事