ฉันต้องการเรียกใช้การเชื่อมต่อpppเมื่อโมเด็ม USB ของฉันเชื่อมต่ออยู่ดังนั้นฉันจึงใช้udevกฎนี้:
ACTION=="add", SUBSYSTEM=="tty", ATTRS{idVendor}=="16d8",\
RUN+="/usr/local/bin/newPPP.sh $env{DEVNAME}"
(โมเด็มของฉันปรากฏ/devเป็นttyACM0)
newPPP.sh:
#!/bin/bash
/usr/bin/pon prov $1 >/dev/null 2>&1 &
ปัญหา:
udevเหตุการณ์ fires และ newPPP.sh จะทำงาน แต่newPPP.shกระบวนการที่ถูกฆ่าตายหลังจาก ~ 4-5s pppไม่มีเวลาในการเชื่อมต่อ (การหมดเวลาใช้งานคือ 10 วินาทีสำหรับการหมุนโทรศัพท์)
ฉันจะเรียกใช้กระบวนการที่ยาวนานซึ่งจะไม่ถูกฆ่าได้อย่างไร
ฉันลองใช้nohupแต่ก็ไม่ได้ผลเหมือนกัน
ระบบ: Arch Linux
ปรับปรุง
ผมพบว่าวิธีการแก้ปัญหาที่นี่ขอบคุณmaxschlepzig
ฉันใช้at nowเพื่อให้งานของฉันหลุดจากกระบวนการ udev
แต่คำถามหนึ่งยังคงไม่ได้รับคำตอบ: ทำไมnohupและ&ไม่ทำงาน