ฉันมีปัญหาเฉพาะ ฉันต้องการยกเลิกการต่อเชื่อมการแชร์ samba (cifs) โดยอัตโนมัติก่อนที่จะหยุดชั่วคราวหรือปิดเครื่องคอมพิวเตอร์ของฉัน ดังนั้นฉันจึงสร้างสคริปต์ใน /lib/systemd/system-sleep
เพื่อให้สามารถทำเช่นนี้ได้
#!/bin/sh
กรณี $1/$2 นิ้ว
ก่อน/*)
if mountpoint -q /path/to/share # หาก mountpoint การแชร์
แล้ว
umount /path/to/share # ยกเลิกการต่อเชื่อม
อื่น
ออก 0 # มิฉะนั้นไม่ต้องทำอะไรเลย
ไฟ
;;
เอสแซค
ปัญหาของสคริปต์นี้คือหากคอมพิวเตอร์เข้าสู่โหมดสลีป (ระงับ) การเชื่อมต่อเครือข่ายทั้งหมดจะถูกยกเลิก/ยกเลิก (แบบไร้สาย/แบบใช้สายด้วย) ก่อนที่จะสามารถเรียกใช้สคริปต์นี้ได้ ดังนั้นหากไม่มีการเชื่อมต่ออินเทอร์เน็ต สคริปต์จะไม่สามารถตรวจสอบได้ว่า /เส้นทาง/ถึง/แบ่งปัน
ติดตั้งหรือไม่ และจะทำให้ระบบทั้งหมดหยุดทำงานประมาณ 1 นาที
ถ้าฉันเพิ่ม รีสตาร์ทตัวจัดการเครือข่ายบริการ
ก่อนคำสั่ง if มันทำงานได้อย่างสมบูรณ์แบบเพราะมันสร้างการเชื่อมต่ออินเทอร์เน็ตใหม่หลังจากที่พวกมันถูกฆ่า สามารถแก้ปัญหาได้ แต่ไม่ดีเกินไป: เพิ่มเวลาที่จำเป็นในการระงับ มันจะดีกว่าถ้าฉันสามารถป้องกันการฆ่า / ยุติการเชื่อมต่อก่อนที่จะหยุดชั่วคราวหรือล่าช้า (อย่างน้อยก็จนกว่าสคริปต์จะทำงาน)