Это дублирующая проблема, но я не считаю, что это дублирующий вопрос, так как ни один из приведенных ответов для людей, страдающих той же проблемой, не работает для меня.
rc.local не запускается при запуске. Это очень просто и содержит следующее:
#!/bin/sh
#
# 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
echo "this was written by rc.local" > /home/simon/start_text
exit 0
«Сон 10» существует, как это было дано в качестве возможного решения проблемы в другом вопросе.
У «#! / Bin / sh» был удален «-e», так как это было также предлагаемое решение.
/etc/rc.local является исполняемым файлом и принадлежит пользователю root.
-rwxrwxrwx 1 root root 396 Jan 24 06:06 rc.local
Запуск скриптов запуска вручную работает нормально, например, "/ etc # ./rc.local" или ": /etc/init.d# ./rc.local start". И то и другое приведет к записи тестового файла (start_text).
Я запускаю 12.04 в Virtualbox, я не уверен, должно ли это иметь какое-то значение.
Я не могу думать о том, что проверить дальше. Идеи, пожалуйста.
Согласно этот документация Ubuntu, системной оболочкой по умолчанию в Ubuntu является Тире вместо Bash, в то время как оболочка входа в систему по умолчанию является Bash. Вывод ls -al /bin/sh
шоу Вы, является ли/bin/sh символьной ссылкой (самого вероятного) Тире, или Bash. В моем случае это - Bash:
lrwxrwxrwx 1 root root 4 Apr 8 2014 /bin/sh -> bash
Тире не будет в состоянии интерпретировать echo "this was written by rc.local" > /home/simon/start_text
в /etc/rc.local
, таким образом, необходимо будет определить для использования Bash для интерпретации команды как это
/bin/bash echo "this was written by rc.local" > /home/simon/start_text
.
можно изменить системную оболочку по умолчанию на Bash, но это не рекомендуется через удаление и воссоздание символьных ссылок:
rm -f /bin/sh
sudo ln -s /bin/bash /bin/sh
Или назад Подчеркнуть штриховой линией:
rm -f /bin/sh
sudo ln -s /bin/dash /bin/sh