3

root の環境変数ではなく、現在のユーザーの権限で TOMCAT を実行したいと考えています。

vagrant@dev:~/Workspace/eurekastreams$ echo $JAVA_OPTS
-Xmx1024m -XX:MaxPermSize=128m -Dlog.home=/home/vagrant/Workspace/software/

やってみましたvagrant$>sudo -E /etc/init.d/tomcat7 start

しかし、私のソフトウェアは /home/vagrant/Workspace/software ディレクトリにログを記録していません。これは、JAVA_OPTS 環境変数が設定されていなかったことを意味します。

現在のユーザーの環境変数を使用してコマンドを実行する sudo -E を正しく理解していますか?

4

4 に答える 4

1

sudo で -u パラメーターを使用しない限り、コマンドは root として実行されます。これはどう:

sudo -u yourusername -l /etc/init.d/tomcat7 start

-u username : 指定されたユーザーとしてコマンドを実行します -l : ログイン シェルにして、.bashrc などのスターアップ スクリプトを読み取ります。これは、環境変数を設定する場所だと思います。

于 2012-12-12T20:44:42.337 に答える
0

どうですか:

JAVA_OPTS=$JAVA_OPTS sudo -E /etc/init.d/tomcat7 start

証拠:

~/Desktop> X=foo sudo bash
 # echo $X

 # exit
exit
~/Desktop> X=foo sudo -E bash
 # echo $X
foo
 # exit
exit
~/Desktop>
于 2012-08-20T13:52:39.443 に答える