LINUX.ORG.RU

debian autostart скриптов от пользователя

 , , ,


0

1

Всем привет
Есть debian и стоит задача настроить поднятие нескольких приложений при старте сервера (glassfish, sonar, tomcat), для каждого приложения есть свой пользователь и у каждого пользователя есть свой настрйоенный .bashrc без которого ни чего не работает.
Что надо написать в скриптах init.d что бы каждое приложение запускалось из под своего пользователя и со своим bashrc.

su - sonar -c '/home/sonar/sonar-3.5.1/bin/linux-x86-64/sonar.sh start > /dev/null'
Вот так вот не работает.


У каждого пользователя свой .bashrc? Пропиши в них нужные скрипты на запуск, и они будут выполняться при логине пользователя.

Meyer ★★★★★
()
Ответ на: комментарий от Dron

Ну а как сделать автостарт не от рута?

n4ela
() автор топика
Ответ на: комментарий от lazyklimm

Спасибо, надо будет попробовать

n4ela
() автор топика

su - sonar -c '/home/sonar/sonar-3.5.1/bin/linux-x86-64/sonar.sh start > /dev/null'

su - sonar -c 'bash -lc "/home/sonar/sonar-3.5.1/bin/linux-x86-64/sonar.sh start > /dev/null"'
alozovskoy ★★★★★
()

Запускаю vnc из /etc/rc.local/

su - vnc_user -c "vncserver -geometry 1920x1080  -depth 24 -deferupdate 0" &

Jurik_Phys ★★★★★
()
Ответ на: комментарий от alozovskoy

Спасибо. Заработало. Еще были проблемы что в debian в .bashrc по умолчанию прописан

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac  

n4ela
() автор топика
Ответ на: комментарий от n4ela

А, точно, забыл, тогда можно было запускать как bash -ic (ключ l запускает логин-оболочку, ключ i - интерактивную).

alozovskoy ★★★★★
()
Ответ на: комментарий от alozovskoy

Хотя лучше будет перетащить нужную информацию в ~/.bash_profile - он должен читаться и в логин-оболочке и подгружаться через bashrc, но в моем Debian его почему-то нет (в RHEL вроде есть - его и используем для хранения пользовательских переменных). Опять же можно перенести в отдельный файл все и подтягивать его через source filename, в том числе и в твоих скриптах запуска (не нужно будет запускать новую оболочку) и прописать в bashrc\bash_profiiles.

alozovskoy ★★★★★
()
Ответ на: комментарий от alozovskoy

Вот так собственно и надо делать. Т.е. убрать всё из .bashrc и положить в файл с нужными переменными окружения, который потом вытягивать c помощью source. У системных пользователей вообще не должно быть никаких .bashrc. В идеале, у них вообще /bin/false вместо шелла должен быть прописан, но к сожалению не со всеми прокатывает.

shell-script ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.