Я подозреваю, что rootpw, как или ожидают, будет сохранен зашифрованный, и у Вас есть он открытый текст, в этом случае он ожидает, возможно, другой результат. (Т.е. хешированное значение секрета отправляется, и сравнивающейся с открытым текстом представляют секрет в виде строки.)
Нет «максимально допустимого времени запуска» для сценария запуска системы. . Однако при длительном выполнении сценария сценарий запуска обычно отключает программу, которая занимает много времени в качестве фонового процесса или даже процесса «в». Таким образом, это предотвращает длительное время медленного выполнения процесса, прежде чем система будет "готова" к работе.
Как уже было сказано, для демона не существует максимального или настраиваемого времени запуска. Если вы думаете, что демон вызывает запуск других демонов, вы можете изменить его последовательность запуска в конце.
Чтобы отладить проблему, я могу придумать три способа сейчас.
1) Очевидным шагом было бы включить журналы отладки для приложения. Я в основном работаю с RHEL и / etc / sysconfig / <имя-демона>
- это место, где можно установить уровень журнала.
2) Когда вы запускаете демон вручную, запустите его с помощью strace.
strace -ffttTo /tmp/daemon.out /etc/init.d/daemon start
Теперь в файле daemon.out обратите внимание на время, указанное в конце каждого системного вызова. Это в микросекундах. Выясните, какой вызов занимает большую часть времени.
Когда вы обнаружите это, снова запустите демон, на этот раз с помощью ltrace. Теперь, когда вы знаете о системном вызове, выяснить, в какой библиотеке он застревает.
3) Напишите сценарий systemtap. Это не так просто, если у пользователя нет опыта написания / отладки с помощью stap.
probe syscall.*
{
( (pid) == target() )
printf("%s\n",name)
}
Это покажет все системные вызовы, которые будет выдавать целевой pid.
ПРИМЕЧАНИЕ. - Не ставьте на первое место скобу. Я просто упомянул об этом, потому что это отличный инструмент для отладки ядра, и я не видел упоминания о нем на сайте (или, может быть, его не заметили). Вам необходимо установить пакеты kernel-debuginfo, kernel-debuginfo-common, kernel-devel, systemtap. Затем запустите сценарий как
stap <script_name.stp> -x pid
. Мы можем дополнительно оснастить данный системный вызов.