LinuxForum.Fans
Тема

Написать скрипт запуска какого-либо приложения через sudo

Автор: kirusha_muchow 13 сообщений 12846 просмотров
#121202

Всем привет. Хочу при запуске ubuntu запускать помимо nginx еще hg server, а то получается, что запускаю руками постоянно вот так

text

sudo -u hg hg serve --webdir-conf /home/hg/repos/hgweb.config --address 127.0.0.1 --port 8080 --encoding utf8 --daemon

Хотелось бы это написать в виде скрипта и поставить в автозагрузку.. Можно ли? :(

#121204

ну так напиши:

#! /bin/bash
sudo -u hg hg serve --webdir-conf /home/hg/repos/hgweb.config --address 127.0.0.1 --port 8080 --encoding utf8 --daemon

И запускай:

[console]bash имя_скрипта[/console]

Сделать его исполняемым chmod +x и через параметры - сеансы добавить в загрузку

#121205

Ой, забыл самое главное smile
Проблема в том, что я же скрипт запускаю по sudo, следовательно он запрашивает пароль! Вот мне и нужно в скрипте как-то передать пароль :(

#121210

ну без скрипта сделай запуск делов то

#121211

kirusha_muchow, sudo может быть настроен на запуск определённых команд, от определённого пользователя без пароля.
Но, IMHO, запуск системных сервисов должна производить система: неужели у hg в комплекте нет скриптов инициализации?

#121212

а что его обязательно из под рута запускать надо?

#121216
mogul82 написал:
а что его обязательно из под рута запускать надо?

Топикстартер как раз и хочет запустить его от пользователя hg, но, повторюсь, у нормальных программ, а mercurial такая, должны быть собственные скрипты запуска и конфигурационные файлы.

#121245

да есть у него свой запуск, не проблема.
проблема в том, что я на него проксирую через nginx :(
Как вариант конечно можно cgi скрипт написать по запуску для nginx, хелпов полно
Я просто думал, что есть проще вариант :(

#121246
kirusha_muchow написал:
Я просто думал, что есть проще вариант sad

С помощью команды visudo добавляете строку

text

hg ВАШ_ХОСТ = NOPASSWD: /usr/bin/hg
#121254

все еще проще, скрипт

text
#!/bin/sh
echo mypass|sudo и погнали...

:lol:

#121256
kirusha_muchow написал:
все еще проще, скрипт

Пароль передаётся в открытом виде, да и в логах найтись может. Если это не критично, делайте, как проще oO

#121263

да я у себя на нетбуке... поэтом не критично
по поводу visudo почитаю маны

#121319

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

Войдите или зарегистрируйтесь, чтобы ответить.