Я использую Ubuntu 12.04.1
Я просто хотел найти хороший инструмент для управления услугами, и я вижу, что он не существует ...
Собственный "update-rc.d" управляет сервисами, но не предоставляет информацию, а не собственный "chkconfig" предоставляет информацию, но выдает ошибку, когда я пытаюсь активировать какой-либо сервис на каком-либо уровне выполнения.
В любом случае, я просто перечислил каталог /etc/rc0.d/ и нашел ссылку для запуска сетевого скрипта (ссылка, начинающаяся с "S"):

user@comp:/etc/rc0.d$ ls -la
total 20
drwxr-xr-x   2 root root  4096 окт.  11 16:45 .
drwxr-xr-x 139 root root 12288 окт.  21 11:55 ..
lrwxrwxrwx   1 root root    17 окт.  11 16:45 K09apache2 -> ../init.d/apache2
lrwxrwxrwx   1 root root    29 окт.  11 04:39 K10unattended-upgrades -> ../init.d/unattended-upgrades
lrwxrwxrwx   1 root root    27 окт.  11 04:39 K20speech-dispatcher -> ../init.d/speech-dispatcher
-rw-r--r--   1 root root   353 июля  26 20:23 README
lrwxrwxrwx   1 root root    18 окт.  11 04:39 S20sendsigs -> ../init.d/sendsigs
lrwxrwxrwx   1 root root    17 окт.  11 04:39 S30urandom -> ../init.d/urandom
lrwxrwxrwx   1 root root    22 окт.  11 04:39 S31umountnfs.sh -> ../init.d/umountnfs.sh
lrwxrwxrwx   1 root root    20 окт.  11 04:39 S35networking -> ../init.d/networking
lrwxrwxrwx   1 root root    18 окт.  11 04:39 S40umountfs -> ../init.d/umountfs
lrwxrwxrwx   1 root root    20 окт.  11 04:39 S60umountroot -> ../init.d/umountroot
lrwxrwxrwx   1 root root    14 окт.  11 04:39 S90halt -> ../init.d/halt

Мой единственный вопрос: все ли в порядке?
Если все в порядке, почему сетевой сервис должен запускаться на уровне остановки?
Если это не хорошо, как я могу это исправить?

1 ответ1

1

Посмотрите на /etc/init.d/halt . Этот файл, безусловно, принадлежит /etc/rc0.d - и единственное, что он определяет, - это функция stop (т. Е. /Etc/init.d/halt /etc/init.d/halt start - нет). Следовательно, можно предположить, что скрипты в /etc/rc0.d вызываются с аргументом stop а не start .

Затем, посмотрев на /etc/init.d/networking , мы увидим:

stop)
    check_network_file_systems
    check_network_swap

    log_action_begin_msg "Deconfiguring network interfaces"
    if ifdown -a --exclude=lo $verbose; then
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
    ;;

который сначала проверяет, что файловые системы больше не монтируются в сети (что должно быть после umountnfs.sh), а затем отключает работу сети (через ifdown), например, для освобождения аренды DHCP или чего-либо еще разумного, что можно было бы сделать после деконфигурации сети.

В заключение, иметь ссылку на /etc/init.d/networking в /etc/rc0.d - это прекрасно.

(Обратите внимание, что я использую Debian, но сценарии по сути должны быть такими же.)

Кроме того, вы обычно должны использовать update-rc.d , который может включать / отключать службы либо для определенных уровней выполнения, либо вообще, и ls , чтобы видеть, какие службы включены / отключены. Я предполагаю, что Ubuntu не переключится на systemd в ближайшее время, хотя, очевидно, его можно уже установить в Debian, если он того пожелает.

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