ฉันพยายามเรียกใช้สคริปต์เมื่อเริ่มต้น แต่ล้มเหลว
crontab
@reboot /bin/sleep 8s && /bin/bash /home/user/reconnect.sh > /home/user/reconnect.log 2>&1
สคริปต์ทำงานได้ดีถ้าฉันดำเนินการด้วยมือ
#!/bin/bash
# หากเริ่มต้นในฐานะรูท ให้เริ่มต้นใหม่ในฐานะผู้ใช้ "ผู้ใช้":
ถ้า [ "$(id -u)" -eq 0 ]; แล้ว
ผู้บริหาร sudo -H -u ผู้ใช้ $0 "$@"
echo "ไม่เคยถึง";
ไฟ
echo "ทำงานเป็น user $(id -un)";
ในขณะที่ [ "จริง" ]
ทำ
VPNCON=$(/bin/nmcli con | /bin/grep PureVPN_PPTP | /bin/cut -f18 -d " ")
ถ้า [[ $VPNCON != ens3 ]]; แล้ว
/bin/echo "ตัดการเชื่อมต่อ กำลังพยายามเชื่อมต่อใหม่..."
(/bin/sleep 1s && /bin/nmcli ตั้งค่า uuid 1dfcb9f6-1b90-3d92-9f8b-106dc35da0f4)
elif IP=$(ifconfig ppp0 | awk '/inet/{print $2; exit}')
(/ถัง/นอน 5 วินาที)
[ "$IP" != "xxx.xxxx.xxx.xxx" ]; แล้ว
/bin/echo "IP ผิด: $IP"
(/bin/sleep 1 วินาที && /bin/nmcli ลดลง uuid 1dfcb9f6-1b90-3d92-9f8b-106dc35da0f4 && /bin/sleep 2 วินาที && /bin/nmcli ลดลง 1dfcb9f6-1b90-3d92-9f8b-106dc35da0f4)
อื่น
/bin/echo "เชื่อมต่อแล้ว !"
ไฟ
/ถัง/นอน 30
เสร็จแล้ว
ตั้งแต่โพสต์แรก ฉันได้ทำงานกับสคริปต์เล็กน้อย มันทำงานได้ดีดำเนินการด้วยตนเอง
ดำเนินการโดย crone ในฐานะผู้ใช้ ฉันได้รับข้อผิดพลาดต่อไปนี้:
สิ่งนี้ทำงานในฐานะผู้ใช้
ตัดการเชื่อมต่อ กำลังพยายามเชื่อมต่อใหม่...
ข้อผิดพลาด: การเปิดใช้งานการเชื่อมต่อล้มเหลว: ไม่ได้รับอนุญาตให้ควบคุมเครือข่าย
อย่างใดผู้ใช้ทำกับ cron ไม่มีสิทธิ์เช่นเดียวกับตัวเอง ปัญหาคือเมื่อดำเนินการในฐานะรูทก็จะล้มเหลวเช่นกัน ข้อมูลประจำตัวสำหรับ VPN นั้นถูกเก็บไว้ในพวงกุญแจผู้ใช้ ดังนั้นรูทจึงไม่สามารถสร้างการเชื่อมต่อได้:-/