如何与另一个用户一起使用 sudo 启动 weblogic 服务?

如何与另一个用户一起使用 sudo 启动 weblogic 服务?

在Centos 6.8服务器上,我需要从测试用户启动weblogic-service,并且我需要进程所有者是weblogic,而不是测试用户。

我还必须使用 nohup 启动 weblogic,并将其放入后台,如下所示:

#nohup ./startweblogic &

我所做的事情如下:

我已将测试用户添加到 sudoers,以便它可以运行启动脚本

我运行以下命令,但进程所有者仍然不是 weblogic。

#su -p -s /bin/sh weblogic "nohup /u01/Oracle/Middleware/user_projects/domains/base_domain/startWebLogic.sh &"

答案1

我猜你已经这样设置了 sudoers 文件:

test ALL=(weblogic) NOPASSWD: /u01/Oracle/Middleware/user_projects/domains/base_domain/startWebLogic.sh

这将允许test用户以 user 身份运行命令weblogic,而无需密码(如果您不需要密码,请删除NOPASSWD:.

另外,当您打算在后台运行 Weblogic 时,最好将其设置为使用 boot.properties 的自动登录功能,因此它不会要求用户/密码。boot.properties放入一个名为/u01/Oracle/Middleware/user_projects/domains/base_domain/servers/your_server_name/security(如果需要,创建安全目录)的文件,其中包含以下内容:

username=your_weblogic_username
password=your_weblogic_password

然后登录test并运行sudo -u weblogic nohup /u01/Oracle/Middleware/user_projects/domains/base_domain/startWebLogic.sh &

你得到:

root      3133  0.0  0.1  37084  6208 pts/1    S    17:47   0:00 sudo -u weblogic nohup /u01/Oracle/Middleware/user_projects/domains/base_domain/startWebLogic.sh
weblogic  3134  0.0  0.0   7112  2912 pts/1    S    17:47   0:00  \_ /bin/sh /u01/Oracle/Middleware/user_projects/domains/base_domain/startWebLogic.sh
weblogic  3135  0.0  0.0   7252  3508 pts/1    S    17:47   0:00      \_ /bin/sh /u01/Oracle/Middleware/user_projects/domains/base_domain/bin/startWebLogic.sh
weblogic  3168  2.8 10.8 2606220 437004 pts/1  Sl   17:47   0:15          \_ /home/weblogic/jdk/bin/java -server -Xms256m -Xmx512m -Dweblogic.Name=AdminServer -Djava.security.policy=/u01/Oracle/wlserver/server/lib/weblogic.policy -Dweblogic.ProductionModeEnabled=true -Djava.system.class.loader=com.oracle.classloader.weblogic.LaunchClassLoader -javaagent:/u01/Oracle/wlserver/server/lib/debugpatch-agent.jar -da -Dwls.home=/u01/Oracle/Middleware/wlserver/server -Dweblogic.home=/u01/Oracle/Middleware/wlserver/server weblogic.Server

答案2

尝试:

su -p -s /bin/sh weblogic -c "nohup /u01/Oracle/Middleware/user_projects/domains/base_domain/startWebLogic.sh &"

请注意命令前的“-c”并用引号括起来。

还要确保“weblogic”用户有权写入当前目录,因为“nohup”会将服务器的输出重定向到当前目录中的“nohup.out”文件。

相关内容