У меня есть несколько команд, которые мне нужно выполнить при запуске. Я хотел поместить их в /etc/rc.local, но это не работает ( сообщение об ошибке ).
Я видел несколько различных обходных путей, и я уверен, что все они работают, но мне интересно, есть ли предпочтительный или даже лучший способ сделать это? Я имею в виду тот, который может избежать потенциальных осложнений, или тот, который может считаться наилучшей практикой в такой ситуации?
Я использую Linux в коммерческих целях (поскольку Windows вчера умерла от меня). Я стараюсь не вызывать больше проблем, чем исправляю. Заранее спасибо.
Я понимаю, что это старый пост .... Но именно это помогло автоматически смонтировать windows-ресурсы в ubuntu vitualbox. Я добавил 10-секундную паузу перед своими командами.
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
sleep 10
<script to be run>
exit 0
Вы все равно должны использовать /etc/rc.local
, если только вы сами не можете подтвердить, что rc.local
не работает.
После консультации с micahg (пользователем IRC), который работает с Bugsquad и BugControl, мы подтвердили, что /etc/rc.local
работает так, как ожидается, что поведение 12.04. Поскольку упомянутая вами ошибка «Incomplete», это, скорее всего, ошибка в крайнем случае, а не ошибка, которую можно подтвердить.
То, что я бы добавил в комментарий к этой ошибке (но не после разговора с micahg), это (обратите внимание, что некоторые из них являются контекстно-зависимыми для ошибки)
[ 1113]rc.local
действительно загружается при чистой установке 12.04. Я подтвердил, чтоrc.local
работает правильно после многочисленных изменений в файле и многочисленных перезагрузок.
У меня есть 30 различных команд, которые активируют или деактивируют определенные сервисы и запускают определенные сервисы, которых нет в
/etc/init.d/
или upstart. Каждая из этих команд была правильно запущена (только что протестирована) на чистой установке 12.04.Так как
/etc/rc.local
требует, чтобы суперпользователь редактировал, я не думаю, что он перезаписывается или перезаписывается рабочим столом, за исключением определенных обстоятельств, когда графический драйвер принимает настройки (или графический интерфейс пользователя, например, подсветка или яркость экрана на ноутбуках, что, как я вижу, происходит при использовании драйверов и программного обеспечения проприетарной видеокарты), и в этом случае/etc/rc.local
, скорее всего, работает, но графический интерфейс и соответствующее программное обеспечение запускаются после этого запускаются дополнительные команды и директивы послеrc.local
времени выполнения.Это требует дополнительного тестирования с многочисленными различными комбинациями команд, но ожидаемое поведение rc.local действительно имеет место в стандартных тестах 12.04 и 11.04, которые я выполнял.
BLOCKQUOTE>