rtorrent
실행을 시도했지만 systemd service
서비스를 시작할 수 없습니다. 얻을 수 있는 구성 파일과 로그는 다음과 같습니다. 필요한 경우 추가 정보를 요청하세요. 나는 실행 중입니다 :
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.2 LTS
Release: 20.04
Codename: focal
$ systemctl status rtorrent
● rtorrent.service - rTorrent
Loaded: loaded (/etc/systemd/system/rtorrent.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Thu 2021-05-27 08:52:43 EEST; 5min ago
Process: 20199 ExecStart=/usr/bin/tmux new-session -d -P -s rt -n rtorrent /usr/bin/rtorrent (code=exited, status=0/SUCCESS)
Process: 20205 ExecStop=/usr/bin/tmux send-keys -t rt:rtorrent C-q (code=exited, status=1/FAILURE)
Main PID: 20201 (code=exited, status=0/SUCCESS)
May 27 08:52:43 $MACHINE systemd[1]: Starting rTorrent...
May 27 08:52:43 $MACHINE tmux[20199]: rt:
May 27 08:52:43 $MACHINE systemd[1]: Started rTorrent.
May 27 08:52:43 $MACHINE tmux[20205]: no server running on /tmp/tmux-110/default
May 27 08:52:43 $MACHINE systemd[1]: rtorrent.service: Control process exited, code=exited, status=1/FAILURE
May 27 08:52:43 $MACHINE systemd[1]: rtorrent.service: Failed with result 'exit-code'.
구성 파일..
[Unit]
Description=rTorrent
Requires=network.target local-fs.target
[Service]
Type=forking
KillMode=none
User=rt
Group=adm
ExecStart=/usr/bin/tmux new-session -d -P -s rt -n rtorrent /usr/bin/rtorrent
ExecStop=/usr/bin/tmux send-keys -t rt:rtorrent C-q
WorkingDirectory=/tmp/tmux-110/
[Install]
WantedBy=multi-user.target
추가 로그:
$ journalctl -u rtorrent
May 27 08:52:43 $MACHINE systemd[1]: Starting rTorrent...
May 27 08:52:43 $MACHINE tmux[20199]: rt:
May 27 08:52:43 $MACHINE systemd[1]: Started rTorrent.
May 27 08:52:43 $MACHINE tmux[20205]: no server running on /tmp/tmux-110/default
May 27 08:52:43 $MACHINE systemd[1]: rtorrent.service: Control process exited, code=exited, status=1/FAILURE
May 27 08:52:43 $MACHINE systemd[1]: rtorrent.service: Failed with result 'exit-code'.
rt
지금까지 사용자를 그룹 에 추가했지만 왜 로 시작할 수 없는지 adm
이해가 되지 않습니다 . -linger 옵션이 활성화되었으므로 사용자에게 서비스를 시작할 권한도 부여했습니다. 먼저 다음을 사용하여 사용자를 추가했습니다. 다음 명령: . 전용 사용자로 서비스를 실행하는 방법은 무엇입니까 ? 아니면 서비스로 실행하는 다른 방법이 있나요 ? 어떤 도움이라도 대단히 감사하겠습니다.tmux
rt
rt
loginctl enable-linger rt
rt
sudo adduser --system --gecos "rTorrent Client" --disabled-password --group --home /home/rt rt
rtorrent
systemd
tmux
systemd
고쳐 쓰다:rtorrent
그래서 다시 시작하기 위해 :이라는 새 사용자를 만들고 파일을 다음으로 변경했습니다 sudo adduser --system --gecos "rTorrent System Client" --disabled-password --group --home /home/rtorrent rtorrent
( 또한 ,/etc/systemd/system/rtorrent.service
system.daemon = true
/home/rtorrent/.rtorrent.rc
이 포스팅 때문에):
[Unit]
Description=rTorrent System Daemon
After=network.target
[Service]
Type=simple
User=rtorrent
Group=rtorrent
ExecStartPre=-/bin/rm -f /home/rtorrent/.session/rtorrent.lock
ExecStart=/usr/bin/rtorrent -o import=/home/rtorrent/.rtorrent.rc
Restart=on-failure
RestartSec=3
[Install]
WantedBy=multi-user.target
하지만 결국 다음과 같은 오류가 발생했습니다.
$ systemctl status rtorrent
● rtorrent.service - rTorrent System Daemon
Loaded: loaded (/etc/systemd/system/rtorrent.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Thu 2021-05-27 10:12:26 EEST; 2s ago
Process: 22855 ExecStartPre=/bin/rm -f /home/rtorrent/.session/rtorrent.lock (code=exited, status=0/SUCCESS)
Process: 22856 ExecStart=/usr/bin/rtorrent -o import=/home/rtorrent/.rtorrent.rc (code=exited, status=255/EXCEPTION)
Main PID: 22856 (code=exited, status=255/EXCEPTION)
왜 이런 일이 발생합니까? 내가 뭘 잘못했나요?
업데이트 2:
그리고 하나 더,이 게시물에 파일을 넣지 말고 데비안 기반 시스템 /etc/systemd/system/
에 넣는 것이 좋습니다 . 그래서 거기로 이동했고 활성화하면 자동 으로 . 그러나 여전히 다음 오류가 발생합니다./usr/local/lib/systemd/system
/lib/systemd/system
unit-file
symlink
/etc/systemd/system/
$ sudo systemctl status rtorrent
● rtorrent.service - rTorrent System Daemon
Loaded: loaded (/lib/systemd/system/rtorrent.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Thu 2021-05-27 10:39:14 EEST; 924ms ago
Process: 24530 ExecStartPre=/bin/rm -f /home/rtorrent/.session/rtorrent.lock (code=exited, status=0/SUCCESS)
Process: 24531 ExecStart=/usr/bin/rtorrent -o import=/home/rtorrent/.rtorrent.rc (code=exited, status=255/EXCEPTION)
Main PID: 24531 (code=exited, status=255/EXCEPTION)
답변1
tmux
왜 누군가가 당신 주위에 하나를 원하는지 이해가 안 돼요 rtorrent
. 그 기능은 무엇입니까 tmux
? 당신은 시도 할 수 있습니다https://askubuntu.com/questions/802189/how-to-run-tmux-screen-with-systemd-230
추가 프로세스 오버헤드를 절대적으로 원하는 경우.
어쨌든 /etc/systemd/system/rtorrent.service
,
[Unit]
Description=rTorrent System Daemon
After=network.target
[Service]
Type=simple
User=rtorrent
Group=rtorrent
ExecStartPre=-/bin/rm -f /home/rt/.session/rtorrent.lock
ExecStart=/usr/bin/rtorrent -o import=/home/rt/rtorrent.rc
Restart=on-failure
RestartSec=3
[Install]
WantedBy=multi-user.target
이것이 마지막 질문에 대한 답이 될 것입니다.
답변2
데몬 및 screen/tmux로 rtorrent
rtorrent 0.9.7부터 screen/tmux더 이상 필요 없어요rtorrent를 시스템 전체 데몬으로 실행콘솔 인터페이스가 필요하지 않은 경우. 이전에는 SCGI를 통해 토렌트를 관리하기 위해 외부 인터페이스(예: ruTorrent)만 사용하는 경우에도 rtorrent가 활성 터미널을 제어해야 했기 때문에 이는 필수였습니다.
터미널을 사용하여 rtorrent를 제어할 수 있도록 screen 또는 tmux를 사용하여 rtorrent를 실행하려면 다음을 참조하세요.이 답변
rtorrent.rc
rtorrent를 데몬으로 실행하려면 파일 에 다음 구성을 추가하기만 하면 됩니다 .
system.daemon.set = true
너외부 소프트웨어를 통해서만 제어 가능SCGI를 통해 구성하므로 구성 파일에서 SCGI도 구성해야 합니다.
# Bind SCGI to localhost only on port 5000
network.scgi.open_port = 127.0.0.1:5000
노트: 구성 파일에 이미 scgi_port = ...
지시문이 포함되어 있을 수 있습니다. 이것은 SCGI 포트를 여는 오래된 방법이며 위와 동일하지만 둘 다 구성 파일에 넣지 마십시오. 그렇지 않으면 rtorrent에서 포트가 열려 있다고 불평합니다 Error in option file: <file>:<line>: SCGI already enabled.
.
서비스 프로필
서비스 파일의 모양에 대한 Ljm Dullaart의 이전 답변이 정확합니다. 하지만 사용 중인 rtorrent 구성 파일에 주의를 기울여야 합니다.
기본적으로 rtorrent는 이 ~/.rtorrent.rc
파일을 구성 파일로 로드합니다. -o import ~/.rtorrent.rc
유닛 파일의 옵션을 사용하여 로드 하면 rtorrent가 파일을 로드하게 됩니다.두 배. rtorrent는 network.scgi.open_port
또는 config 라인을 두 번 읽기 때문에 SCGI 포트가 열려 있다고 불평하게 됩니다 scgi_port
. 또한 -n
rtorrent가 기본 구성 파일을 읽지 못하도록 옵션 스위치를 추가해야 합니다.
유닛 파일은 /etc/systemd/system/rtorrent.service
다음과 같아야 합니다:
[Unit]
Description=rTorrent system daemon
After=network.target
[Service]
Type=simple
User=torrent
Group=torrent
# Change these settings to match your install:
Environment=RTORRENT_DIR=/home/torrent
Environment=RTORRENT_CONFIG=${RTORRENT_DIR}/.rtorrent.rc
Environment=SESSION_DIR=${RTORRENT_DIR}/session
ExecStartPre=/bin/rm -f ${SESSION_DIR}/rtorrent.lock
ExecStart=/usr/bin/rtorrent -n -o import=${RTORRENT_CONFIG}
Restart=on-failure
RestartSec=3
[Install]
WantedBy=multi-user.target
답변3
이것은 나에게 도움이 되었습니다:
설명된 대로 기본 구성을 설치합니다.여기. 이 페이지에는 현재 사용자 이름을 사용하도록 구성을 다운로드하고 업데이트하는 스크립트가 포함되어 있습니다.
curl -Ls "https://raw.githubusercontent.com/wiki/rakshasa/rtorrent/CONFIG-Template.md" \ | sed -ne "/^######/,/^### END/p" \ | sed -re "s:/home/USERNAME:$HOME:" >~/.rtorrent.rc mkdir -p ~/rtorrent/
구성에서 다음 3줄의 주석 처리를 제거하세요.
system.daemon.set = true network.scgi.open_local = (cat,(session.path),rpc.socket) execute.nothrow = chmod,770,(cat,(session.path),rpc.socket)
다음에 설명된 대로 서비스를 시작합니다.이 답변이지만
-o
매개변수를 지정하지 않습니다.ExecStart=/usr/bin/rtorrent
rtorrent
자동으로 구성을 가져옵니다~/.rtorrent.rc
.
로그에 다음과 같은 오류가 많이 표시되면 구성이 두 번 로드되고 있는지 알 수 있습니다.
1687310792 C Caught exception: 'Error in option file: ~/.rtorrent.rc:11: Invalid key.'.