我使用带有RUNASIS选项的jboss与linux用户jbs一起启动jboss_3.2.7,但是当整个系统[linux]重新启动时它无法正常工作。以root用户身份启动jboss。
我在linux的chkconfig选项中添加了jboss服务,用于在linux restart上启动jboss。
答案 0 :(得分:0)
在jboss服务文件(/etc/init.d)中将用户修改为RUNASIS
定义运行jboss的用户,或使用RUNASIS作为当前用户运行
JBOSSUS = $ {JBOSSUS: - “RUNASIS”}
答案 1 :(得分:0)
您使用的是相当旧的JBoss版本,我个人从未见过它。但我认为它应该与新的非常相似。
请在定义这些变量时尝试将用户放在后面:
JBOSSUS=jbs
另一个解决方案是在执行运行脚本之前设置这些变量:
export JBOSSUS=jbs; /etc/init.d/jboss start
<强>更新强>
我刚刚下载了JBoss 3.2.7并检查了jboss_init_redhat.sh
脚本(我希望你将这些脚本用作起始脚本的模板)。
在文件jboss_init_redhat.sh
中,您可以找到以下行:
#define the user under which jboss will run, or use RUNASIS
#to run as the current user
JBOSSUS=${JBOSSUS:-"jboss"}
这些行定义了新用户名。它检查变量JBOSSUS
是否已设置,如果未设置,则使用jboss
user作为默认名称。
这些剧本的第二个有趣部分:
if [ "$JBOSSUS" = "RUNASIS" ]; then
SUBIT=""
else
SUBIT="su - $JBOSSUS -c "
fi
您应该知道一件事:当您从init脚本自动运行任何脚本时,它始终以root
用户身份运行。这就是为什么在脚本中应该命令将有效用户更改为其他人。在这里你有脚本的这些部分。
首先检查您的用户名是否为RUNASIS
,如果是 - 则不执行任何操作。在另一种情况下,它使用su
命令将JBoss作为另一个用户运行。
在您的情况下,将JBOSSUS
变量定义更改为类似的内容应该足够了:
JBOSSUS = JBS
之后,您可以以root
用户身份启动这些脚本,并且应该使用带有jbs
用户的JBoss运行JVM。