Назад | Перейти на главную страницу

Как запустить непривилегированные скрипты из rc.local при загрузке системы?

Я установил свой /etc/rc.local чтобы запустить некоторые службы, используя пару сценариев, чтобы моя система включалась при перезагрузке.

Один скрипт запускается как root, запускает nginx, mysql, php и т. Д. И отлично работает.

Остальное работает как мой обычный пользователь, поэтому я выполняю sudo, и, похоже, он не работает во время загрузки. Есть ли проблема с запуском от имени пользователя с непривилегированными правами на данном этапе процесса загрузки?

Мой rc.local выглядит так -

#!/bin/sh
touch /var/lock/subsys/local

# main system start - web server, db etc...
/root/start-services.sh

# services run as me
/usr/bin/sudo -u tim /home/vhosts/myapp/bin/start-app.sh

Запускаем скрипты при включенной системе, все работает нормально. Но во время загрузки ни одна из служб в start-app.sh не запускается, и я не могу найти никаких следов ошибок ни в каких журналах.

Что я здесь сделал не так?

Попробуйте:

su USER -c 'command &'

Ты должен попытаться /usr/bin/sudo -u tim /home/vhosts/myapp/bin/start-app.sh 2>&1 1>/tmp/start-app.log для записи stdout и stderr в файл.