2

Я поместил этот файл в /etc/init/proxyserver.conf, который выполняет этот скрипт при запуске (Ubuntu 11.10):

description "Run code for ProxyServer"
start on runlevel [23]

script
    cd /home/mark/selenium-client
    exec java -jar selenium-server-standalone-2.20.0.jar -role hub -port 1111
end script

Это работает нормально, но если я выполню это в терминале:

ps aux | grep selenium

Это возвращает этот экран:

root  783   0.0   2.3  680584   23688   ?   Ssl   Apr18   4:45   java -jar selenium-server-standalone-2.20.0.jar -role hub -port 1111

Но я хочу запустить скрипт как пользователь без полномочий root, как я могу это сделать?

Спасибо!

3 ответа3

5

Вы можете запустить его в crontab с опцией @reboot

crontab -e, чтобы открыть пользовательский crontab.

добавьте строку @reboot /path/to/script и он должен запустить ваш скрипт при перезагрузке от имени этого пользователя

Еще несколько примеров использования cron здесь

2

Вы можете использовать, например,

sudo -u mark exec java -jar selenium-server-standalone-2.20.0.jar -role hub -port 1111

использовать привилегии суперпользователя для выполнения процесса от имени указанного пользователя.


РЕДАКТИРОВАТЬ: Или, возможно,

exec sudo -u mark java -jar selenium-server-standalone-2.20.0.jar -role hub -port 1111

в зависимости от того, что хочет upstart (я не использую это сам).

2

В Upstart используйте ключевое слово setuid :

description "Run code for ProxyServer"
start on runlevel [23]

setuid mark
chdir /home/mark/selenium-client
exec java -jar selenium-server-standalone-2.20.0.jar -role hub -port 1111

(script не нужен.)

Или создайте пользовательскую работу вместо системной.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .