web-dev-qa-db-ja.com

root以外のユーザーとしてinitスクリプトを実行するにはどうすればよいですか?

このファイルを/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
Mark Design

@rebootオプションを使用して crontab で実行できます

crontab -eを使用して、ユーザーcrontabを開きます。

行を追加します@reboot /path/to/scriptそして、そのユーザーとして再起動時にスクリプトを起動する必要があります

ここで使用する cronのその他の例

5
Journeyman Geek

あなたは例えばを使うことができます.

Sudo -u mark exec Java -jar Selenium-server-standalone-2.20.0.jar -role hub -port 1111

root権限を使用して、指定されたユーザーとしてプロセスを実行します。


編集:またはおそらく

exec Sudo -u mark Java -jar Selenium-server-standalone-2.20.0.jar -role hub -port 1111

upstartが何を望んでいるかによって異なります(私はそれを自分では使用しません)。

2

Upstartで、 setuid キーワードを使用します。

説明「ProxyServerのコードを実行する」
ランレベルで開始[23] 
 
setuidマーク
 chdir /home/mark/Selenium-client
exec Java -jar Selenium-server-standalone-2.20.0.jar -role hub -port 1111 

scriptは不要です。)

または、システムの代わりに ユーザージョブ を作成します。

2
user1686