В чем разница между использованием chkconfig и использованием chkconfig --add?
chkconfig --add
добавляет новый service в список услуг, управляемых chkconfig
. Я считаю --add
неявный on
.
chkconfig on
устанавливает уровень запуска для службы.
Тем не менее, я предпочитаю использовать chkconfig -add
для добавления новых сервисов в систему, но ntsysv
управлять ими (в системах типа RHEL).
В Redhat / CentOS в сценарии инициализации есть одна строка, которая выглядит так:
# chkconfig: - 65 10
Если вы используете --add, когда первый аргумент вышеприведенной строки равен «-», это не добавляет никаких стартовых ссылок, а только уничтожает ссылки. Итак, чтобы --add заработал, вам нужно отредактировать сценарий инициализации и изменить его, например, на
# chkconfig: 345 65 10
Но если chkconfig --add ... был выполнен с «-» в качестве первого аргумента (что в основном имеет место в сценарии публикации rpm): изменение первого аргумента и повторное выполнение chkconfig --add не имеет никакого эффекта, пока kill ссылки присутствуют. В этом случае --list отображается для всех уровней запуска:
chkconfig --list saslauthd saslauthd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
Чтобы заставить --add работать в этом случае, вы сначала должны использовать --del, затем вывод --list:
chkconfig --list saslauthd service saslauthd supports chkconfig, but is not referenced in any runlevel (run 'chkconfig --add saslauthd')
Теперь вы можете использовать --add, и это даст желаемый эффект.
В качестве альтернативы вы можете использовать «on» с аргументом --level, чтобы избежать необходимости редактировать сценарий инициализации и избежать первого --del, за которым следует --add.
На какой ОС вы работаете? Если вы запускаете chkconfig только с именем службы в качестве аргумента, я полагаю, что программа chkconfig RHEL просто проверяет, настроена ли эта служба для работы, на каком уровне запуска вы выполняете в данный момент (сказал д-р Зюсс).