Câu trả lời được chấp nhận là đúng nhưng không chỉ định cách thực hiện tắt rtorrent
dịch vụ "an toàn" với systemctl
tập lệnh dịch vụ.
Hầu hết các câu trả lời hoặc tập lệnh hiện có "giết" cả phiên màn hình hoặc rtorrent
chính quá trình. Khi làm như vậy, họ gửi một SIGINT (2)
hoặc SIGQUIT (3)
tín hiệu dừng / giết rtorrent
quá trình. Hạn chế là thông thường tệp khóa của rtorrent
không bị xóa vì rtorrent
không được tắt đúng cách. Do đó, sự khởi đầu tiếp theo rtorrent
sẽ thất bại vì tệp khóa liên tục.
Nhìn vào mã nguồn củartorrent
chương trình mà nó mong đợi a SIGTERM (15)
. Do đó, xem xét một systemctl
kịch bản dịch vụ, lệnh dừng có thể trông giống như:
ExecStop=/usr/bin/kill -s 15 \`pidof rtorrent`
Nếu pidof
không có sẵn, bạn cũng có thể sử dụng một cái gì đó như:
ps -A | grep "rtorrent" | awk '{print $1}'
ps
liệt kê các quy trình hiện tại
grep
trích xuất các chi tiết quá trình rtorrent
awk
chọn pid và hiển thị nó thành thiết bị xuất chuẩn
Trong trường hợp bạn cần đợi cho đến khi tắt máy xong, bạn có thể sử dụng killall -w
. Lưu ý rằng:
killall
có thể đợi mãi nếu tín hiệu bị bỏ qua, không có hiệu lực hoặc nếu quá trình vẫn ở trạng thái zombie (nguồn man killall
:).
sudo service start rtorrent
chưa