คำตอบที่ยอมรับนั้นถูกต้อง แต่ไม่ได้ระบุวิธีการปิดrtorrentบริการ"ปลอดภัย" ด้วยsystemctlสคริปต์บริการ
คำตอบหรือสคริปต์ที่มีอยู่ส่วนใหญ่ "ฆ่า" ทั้งเซสชันหน้าจอหรือrtorrentกระบวนการเอง ในการทำเช่นนั้นพวกเขาส่งSIGINT (2)หรือSIGQUIT (3)สัญญาณที่หยุด / ฆ่าrtorrentกระบวนการ ข้อเสียเปรียบคือโดยทั่วไปแล้วไฟล์ล็อคของrtorrentจะไม่ถูกลบเพราะrtorrentไม่ได้ปิดอย่างถูกต้อง ดังนั้นการเริ่มต้นครั้งถัดไปของrtorrentจะล้มเหลวเนื่องจากไฟล์ล็อคถาวร
การดูที่มารหัสที่มาของการrtorrentSIGTERM (15)แสดงให้เห็นว่ามันคาดว่า ดังนั้นเมื่อพิจารณาsystemctlเซอร์วิสสคริปต์คำสั่ง stop อาจมีลักษณะดังนี้:
ExecStop=/usr/bin/kill -s 15 \`pidof rtorrent`
หากpidofไม่มีให้ใช้คุณสามารถใช้สิ่งต่อไปนี้:
ps -A | grep "rtorrent" | awk '{print $1}'
ps รายการกระบวนการปัจจุบัน
grep แยกรายละเอียดกระบวนการ rtorrent
awk เลือก pid และแสดงเป็น stdout
killall -wในกรณีที่คุณต้องรอจนกว่าจะปิดระบบเสร็จสมบูรณ์แล้วคุณสามารถใช้ โปรดทราบว่า:
killallอาจจะรอตลอดหากสัญญาณถูกละเว้นไม่มีผลหรือถ้าเข้าพักกระบวนการในรัฐผีดิบ (ที่มา: man killall)
sudo service start rtorrentไหม