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 rtorrentdịch vụ "an toàn" với systemctltậ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 rtorrentchí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 rtorrentquá trình. Hạn chế là thông thường tệp khóa của rtorrentkhông bị xóa vì rtorrentkhông được tắt đúng cách. Do đó, sự khởi đầu tiếp theo rtorrentsẽ 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 systemctlkị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 pidofkhô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:
killallcó 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 rtorrentchưa