คำสั่งเส้นทางไม่ได้ถูกดำเนินการใน rc.local


0

ฉันพยายามเพิ่ม route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 กับ Fedora ของฉัน rc.local ไฟล์ แต่จะไม่ถูกดำเนินการเมื่อ Fedora บู๊ต ฉันจะแก้ไขสิ่งนี้ได้อย่างไร

ปรับปรุง: ฉันเปลี่ยนเป็นเส้นทางแบบเต็ม cmd ใน rc.local / sbin / route เพิ่มของฉัน - สุทธิ 224.0.0.0 netmask 240.0.0.0 dev eth0 แต่มันไม่ได้ถูกดำเนินการ ฉันเปลี่ยนเป็น sudo / sbin / route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 มันยังไม่ทำงานแม้ว่ามันจะทำงานเมื่อฉันป้อนด้วยตนเองในเทอร์มินัล


ฉันได้ทำงานกับมันและดูเหมือนว่าลำดับการดำเนินการไม่เป็นไปตามที่ควรเนื่องจาก systemd ต้องการให้ระบบเร็วขึ้นไม่ต้องกังวลว่าบริการเครือข่ายจะอัพหรือไม่ (โดยเฉพาะในกรณีของการเพิ่มเส้นทาง) ฉันประสบปัญหาเดียวกัน แต่จะลองโหลด rc-local.service หลังจากบริการเครือข่าย
Muhammad Arif

คำตอบ:


1

นี่คือการกำหนดค่าทีละขั้นตอน:

ขั้นตอนที่ 1

ใน / etc สร้างลิงค์สัญลักษณ์

lrwxrwxrwx   1 root     root         18 Jun 29 19:08 rc.local -> /etc/rc.d/rc.local

ใน /etc/rc.d สร้างไฟล์ rc.local

#!/bin/bash
#!/bin/sh
/sbin/route add -net 192.xxx.xx.x netmask 255.255.255.0 gw 192.xxx.xx.xx

ทำให้ไฟล์ rc.local ทำงานได้ไฟล์ rc.local ของคุณควรมีลักษณะดังนี้

-rwxr-xr-x    1 root root    93 Jul  4 18:30 rc.local

ขั้นตอนที่ 2

cd /lib/systemd/system
ls -l rc-local.service

-rw-r--r-- 1 root root 565 Jul  6 20:18 rc-local.service

แก้ไข rc-local.service ไฟล์ rc-local.service ของคุณควรมีลักษณะดังนี้:

[Unit]
Description=/etc/rc.local Compatibility
ConditionFileIsExecutable=/etc/rc.d/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.d/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target

0

คุณควรเพิ่มเส้นทางแบบเต็มไปยังคำสั่งเส้นทาง /sbin/route add ควรทำงาน.


ใช้เส้นทางแบบเต็มเสมอสำหรับคำสั่งใด ๆ ในสคริปต์ ในระหว่างส่วนหนึ่งของการบูต $ PATH ยังไม่ได้ตั้งค่า ในไฟล์ cron $ PATH ของคุณจะแตกต่างจากการเข้าสู่ระบบปกติของคุณ
Sibster

0

มีแนวโน้มที่ rc.local เพียงแค่ไม่ได้ถูกดำเนินการตอนบูต คุณสามารถตรวจสอบสิ่งนี้ได้ด้วยการเรียกใช้ systemctl status rc-local.service. หากไม่ได้ดำเนินการคุณจะเห็นผลลัพธ์ดังนี้:

rc-local.service - /etc/rc.d/rc.local Compatibility
          Loaded: loaded (/usr/lib/systemd/system/rc-local.service; static)
          Active: inactive (dead)
          CGroup: name=systemd:/system/rc-local.service

หากดำเนินการสำเร็จตอนบูตคุณจะเห็นผลลัพธ์เช่นนี้แทน:

rc-local.service - /etc/rc.d/rc.local Compatibility
          Loaded: loaded (/usr/lib/systemd/system/rc-local.service; static)
          Active: active (exited) since Sun, 01 Apr 2012 12:54:47 -0700; 1 day and 21h ago
        Main PID: 380 (code=exited, status=0/SUCCESS)
          CGroup: name=systemd:/system/rc-local.service

หากไม่มีการบู๊ตคุณอาจพบกับข้อผิดพลาดทั่วไป ตามเนื้อผ้าระบบ Red Hat วางไฟล์นี้ไว้ /etc/rc.d/rc.localมี symlink ที่ /etc/rc.local สำหรับคนที่คุ้นเคยกับระบบ Debian Fedora เวอร์ชั่นล่าสุดไม่รวม rc.local ไฟล์โดยค่าเริ่มต้นเพื่อเพิ่มความเร็วในการบูตเล็กน้อยโดยไม่ต้องดำเนินการ bash สิ่งที่อยู่ในระบบส่วนใหญ่เป็นไฟล์ว่างเปล่า systemd ตอนนี้ตรวจสอบเพื่อดูว่า /etc/rc.d/rc.local มีอยู่และสามารถเรียกใช้งานได้และจะเรียกใช้งานถ้าเป็น

หากคุณสร้างไฟล์ที่ /etc/rc.localคุณจะต้องย้ายหรือเชื่อมโยงไปยัง /etc/rc.d/rc.local เพื่อที่จะดำเนินการในการบูต คุณควรตรวจสอบว่ามันปฏิบัติการได้ ( chmod +x /etc/rc.d/rc.local )

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.