Я изо всех сил пытаюсь понять, почему rc.local не запускается во время загрузки.
Сам файл исполняемый, вызывается из /etc/rc2.d
Также файл из командной строки не вернет никаких ошибок.
Есть идеи, что еще проверить, чтобы выяснить, почему не запускается?
Поскольку вы говорите, что rc.local
выполняется правильно, когда вы запускаете его вручную, сразу приходят на ум две вещи:
/etc/rc.local
действительно не запускается при загрузке.В обоих случаях первое, что я сделаю, это поставлю что-нибудь вроде
/usr/bin/printenv > /var/tmp/rc.local-$(date +%T)
как самая первая строка rc.local
после #!/bin/sh
линия. Это будет печатать переменные среды в файле с отметкой времени при каждом запуске. (Не записывайте файл в /tmp
потому что он опорожняется при загрузке.) /etc/rc.local
вручную и быстро посмотрите на получившийся файл (он будет называться примерно так /var/tmp/rc.local-21:14:35
). Затем перезагрузите вашу систему.
У вас должно быть два файла в /var/tmp
(или где угодно), что можно сравнить. Если у вас только первый файл, /etc/rc.local
на самом деле не звонят. Если у вас два файла, сравните их. У последнего будет очень разреженная среда и PATH. Посмотрите через свой rc.local
script и посмотрите, есть ли что-то, что вы пытаетесь запустить, что зависит от некоторой переменной или какого-либо компонента PATH, которого нет в среде загрузки. Если что-то обнаружите, добавьте необходимую инициализацию в rc.local
.