Надо всё хорошенько обдумать. Главное не сделать хуже, чем было.
Антон, давай обрисуем текущую стуацию:
'chkconfig <service> on' для всех скриптов делать нельзя, - это сломает init N в dm, а заодно и запустит сетевые сервисы не там которые указаны в инит скриптах NetworkManager и network.
Эти например можно смело через reset:
# grep 'chkconfig:\|Default-St' /etc/init.d/{NetworkManager,network}
/etc/init.d/NetworkManager:# chkconfig: - 12 90
/etc/init.d/NetworkManager:# Default-Start: 3 4 5
/etc/init.d/NetworkManager:# Default-Stop: 0 1 6
/etc/init.d/network:# chkconfig: 345 10 90
/etc/init.d/network:# Default-Start: 3 4 5
/etc/init.d/network:# Default-Stop: 0 1 2 6
Но те которые с 'chkconfig: -' и без Default-St* будут везде в Kill.
Все остальные в образе кроме этих
$ find $(grep 'chkconfig: -' /etc/rc.d/init.d/* | \
> awk -F ':' '{print $1}') -exec \
> grep -H -E -o -c 'Default-Start:' {} \; | grep :0
/etc/rc.d/init.d/alteratord:0
/etc/rc.d/init.d/dnsmasq:0
/etc/rc.d/init.d/ethtool:0
/etc/rc.d/init.d/hddtemp:0
/etc/rc.d/init.d/iptables:0
/etc/rc.d/init.d/multipathd:0
/etc/rc.d/init.d/nfslock:0
/etc/rc.d/init.d/osspd:0
/etc/rc.d/init.d/rawdevices:0
/etc/rc.d/init.d/template:0
/etc/rc.d/init.d/xl2tpd:0
по reset (mkimage-profiles ?) должны устанавливаться в верных runlevel, которые будут браться или из chkconfig: или из Default-St* скрипта.
Например:
# chkconfig --del NetworkManager
# chkconfig NetworkManager reset # исключаем --add
# chkconfig --list NetworkManager
NetworkManager 0:выкл 1:выкл 2:выкл 3:вкл 4:вкл 5:вкл 6:выкл
# ll /etc/rc*.d/*NetworkManager | cut -f10- -d ' '
/etc/rc0.d/K90NetworkManager -> ../init.d/NetworkManager
/etc/rc1.d/K90NetworkManager -> ../init.d/NetworkManager
/etc/rc2.d/K90NetworkManager -> ../init.d/NetworkManager
/etc/rc3.d/S12NetworkManager -> ../init.d/NetworkManager
/etc/rc4.d/S12NetworkManager -> ../init.d/NetworkManager
/etc/rc5.d/S12NetworkManager -> ../init.d/NetworkManager
/etc/rc6.d/K90NetworkManager -> ../init.d/NetworkManager
При переходе на runlevel, запустится|не_запустится там где и должен.
В данном случае, reset взял runlevel -ы из LSB-хидера, поскольку в chkconfig: он их не нашёл.
На первой установке, линковка по уровням будет верной
# rpm -q --scripts NetworkManager-daemon | sed -n '5,6p; 13,19p'
postinstall scriptlet (using /bin/sh):
#post_service NetworkManager
else
if [ "$1" -eq 1 ]; then
/sbin/chkconfig --add NetworkManager ||:
else
/sbin/chkconfig NetworkManager resetpriorities ||:
fi
fi
# chkconfig --del NetworkManager
# chkconfig --add NetworkManager
# ll /etc/rc*.d/*NetworkManager | cut -f10- -d ' ' | sort
/etc/rc0.d/K90NetworkManager -> ../init.d/NetworkManager
/etc/rc1.d/K90NetworkManager -> ../init.d/NetworkManager
/etc/rc2.d/K90NetworkManager -> ../init.d/NetworkManager
/etc/rc3.d/S12NetworkManager -> ../init.d/NetworkManager
/etc/rc4.d/S12NetworkManager -> ../init.d/NetworkManager
/etc/rc5.d/S12NetworkManager -> ../init.d/NetworkManager
/etc/rc6.d/K90NetworkManager -> ../init.d/NetworkManager
Если 'service <service> on' этому сервису не делать конечно.
Т.е. ИМХО:
--add и reset совершенно аналогичны. С той лишь разницей, что --add создаёт дефолт, а reset устанавливает дефолт, сбрасывая предыдущие установки.