Как я могу заставить определенный скрипт запускаться (желательно не как суперпользователь) всякий раз, когда машина загружается, но до входа в систему. Это может быть последнее, что запускается при загрузке. В основном я просто хочу, чтобы скрипт работал, даже если пользователь не вошел в систему.
Я бы порекомендовал использовать cron
. Специальное значение времени @reboot
будет порождать вашу работу при каждой перезагрузке в качестве вашего пользователя. Например, запустите crontab -e
и используйте:
@reboot /home/yourself/bin/some_script_to_run
Для получения дополнительной информации о специальных форматах времени см. man 5 crontab
Одна из возможностей - использовать Upstart. Это позволяет вам указать, когда вы хотите запустить ваш скрипт с точки зрения зависимостей, например, «Когда файловые системы смонтированы и сетевой интерфейс eth0
запущен и работает». Создайте файл /etc/init/bruce_script.conf
(вам нужно создать файл как root), содержащий что-то вроде этого:
description "Bruce's boot script"
start on filesystem and net-device-up IFACE=eth0
task
exec su -c '/home/bruce/script' bruce
Обратитесь к документации upstart для получения дополнительной информации, в частности init(5)
Страница справочника для получения списка того, что вы можете поместить в этот файл конфигурации.