Я попытался добавить route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 в мой файл Fedora rc.local , но он не выполняется при загрузке Fedora. Что я могу сделать, чтобы это исправить?

обновление: я изменил на полный путь cmd в моем rc.local /sbin /route add -net 224.0.0.0 маска сети 240.0.0.0 dev eth0, но он не выполняется. Я изменяю его на sudo /sbin /route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0, он все еще не работает, хотя он работает, когда я вручную ввожу его в терминал.

3 ответа3

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

Вы должны добавить полный путь к команде route, /sbin/route add должен работать.

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 с символической ссылкой в /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).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .