繁体   English   中英

编写运行其他用户拥有的另一个Shell脚本的Shell脚本

[英]Writing a shell script that run another shell script owned by other user

我已经在/ opt / tomcat6中安装了tomcat,并在〜/ tomcatHost目录中创建了其中的一个实例./opt/tomcat6由tomcat用户和tomcat组拥有。 Unix“ ls -l”产生以下内容-

drwxr-xr-x 9 tomcat tomcat 4096 Dec 15 03:37 tomcat6

在这种情况下,要在〜/ tomcatHost中运行tomcat实例,我需要执行以下步骤-

  • 将conf,webapps,日志从/ opt / tomcat6复制到〜/ tomcatHost。 在〜tomcatHost / conf中进行server.xml的一些更改(例如,更改“ Connector”元素中的端口号)
  • 通过chmod为所有用户授予〜/ tocatHost的执行权限-

$ chmod -R 777 tomcatHost

  • 并运行以下命令-

$ export CATALINA_BASE=/home/guestUser/tomcatHost
$ su tomcat
$ cd /opt/tomcat6/bin
$ sh startup.sh

现在,tomcat从server.xml中配置的端口启动。 我正在尝试编写执行上述任务的shell脚本。 我是Shell脚本的新手,无法解决此问题。 我认为存在所有权问题,谁能告诉我如何在Shell脚本中处理所有权问题? 或者,如何编写一个脚本来从其他用户运行“ startup.sh”(由tomcat用户拥有)。 您可以为此建议任何好的教程吗?

我对此有解决方案。 可能不是最佳解决方案,但效果很好。 我在名为“ start.sh”的文件上写了以下代码(基于 )。

 export CATALINA_BASE=/home/razib/tomcat_host echo "CATALINA_BASE is set..." echo "Password for 'tomcat' - " su -c "sh /opt/tomcat6/bin/startup.sh" -s /bin/sh tomcat 

然后从终端我只运行'start.sh'脚本

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM