免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3897 | 回复: 14
打印 上一主题 下一主题

大神 这个问题折腾了一天了 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-05-05 16:52 |只看该作者 |倒序浏览
同一个目录下的脚本能启动并执行里面的语句
这个脚本里的语句怎么执行不了呢?但是在命令行直接用/usr/local/qidong/bao.sh 倒是能启动来 ,把/usr/local/qidong/bao.sh 放在/etc/rc.local就不行了
#!/bin/bash
cd /usr/local/yewubao/aa//bin
nohup ./bcServer.sh start &
cd /usr/local/yewubao/bb
nohup java -jar bb.jar &
cd /usr/local/yewubao/Ss
nohup java -jar Ss.jar &
cd /usr/local/yewubao
nohup java -jar rr.jar &
cd /usr/local/yewubao/Mm
nohup java -jar Mm.jar &
cd /usr/local/yewubao
nohup java -jar Ss.jar &

改为nohup /usr/local/yewubao/java -jar Ss.jar &
之类的,后面两个jar包能跑起来  中间的三个跑不起来

系统日志没报错

论坛徽章:
0
2 [报告]
发表于 2011-05-05 17:03 |只看该作者
本帖最后由 xiaopan3322 于 2011-05-05 17:16 编辑

4种解决方法:

1. 使用source命令
2. 使用alias
3. 更改CDPATH
4. 直接用绝对路径

论坛徽章:
0
3 [报告]
发表于 2011-05-05 17:10 |只看该作者
你的脚本,问题出在涉及到nohup的那些命令,这么给你解释:
Shell scripts are run inside a subshell, and each subshell has its own concept of what the current directory is. The cd succeeds, but as soon as the subshell exits, the previous current directory is restored.

给你举个例子:
  1. [17:07:51-Bob@hzling08:~/test]-(1027)No.27->$ cat aa
  2. #!/bin/bash
  3. cd /home
  4. pwd
  5. [17:07:53-Bob@hzling08:~/test]-(1028)No.28->$ sh aa && pwd
  6. /home
  7. /home/xiabao/test
  8. [17:07:56-Bob@hzling08:~/test]-(1029)No.29->$ ./aa && pwd  
  9. /home
  10. /home/xiabao/test
  11. [17:08:05-Bob@hzling08:~/test]-(1030)No.30->$ . ./aa && pwd
  12. /home
  13. /home
复制代码
所以,以后涉及到相对路径的问题,要慎重……

论坛徽章:
0
4 [报告]
发表于 2011-05-05 17:10 |只看该作者
3种解决方法:

1. 使用source命令
2. 使用alias
3. 更改CDPATH
xiaopan3322 发表于 2011-05-05 17:03



    source命令?怎么说法

论坛徽章:
0
5 [报告]
发表于 2011-05-05 17:13 |只看该作者
你的脚本,问题出在涉及到nohup的那些命令,这么给你解释:

给你举个例子:所以,以后涉及到相对路径的问 ...
xiaopan3322 发表于 2011-05-05 17:10



    怎么解决呢?大神

论坛徽章:
0
6 [报告]
发表于 2011-05-05 17:13 |只看该作者
回复 4# 版主杀手


    . /usr/local/qidong/bao.sh
or
    source /usr/local/qidong/bao.sh

看3楼的例子

论坛徽章:
0
7 [报告]
发表于 2011-05-05 17:22 |只看该作者
回复  版主杀手


    . /usr/local/qidong/bao.sh
or
    source /usr/local/qidong/bao.sh

看3楼 ...
xiaopan3322 发表于 2011-05-05 17:13



    在/etc/rc.local中用source /usr/local/qidong/bao.sh 没启动来,用 . /usr/local/qidong/bao.sh也没起来

论坛徽章:
0
8 [报告]
发表于 2011-05-05 17:24 |只看该作者
回复 7# 版主杀手


    为啥不用绝对路径啊……

论坛徽章:
0
9 [报告]
发表于 2011-05-05 17:26 |只看该作者
回复  版主杀手


    为啥不用绝对路径啊……
xiaopan3322 发表于 2011-05-05 17:24



    bao.sh 里的内容写成这样的nohup /usr/local/yewubao/java -jar Ss.jar &,全部?
我之前用过这样的 但是这个bao.sh没起来 应该是bao.sh里的语句问题

论坛徽章:
0
10 [报告]
发表于 2011-05-05 17:30 |只看该作者
回复 9# 版主杀手


    我指的不是这个,我指的是后面那部分,
    我看你的脚本的目的,无非是因为那些.jar包放在不同的路径下,然后想执行的时候切换目录,
    所以,你直接将后面的.jar包的路径用绝对路径……
    类似这样:

    nohup java -jar /usr/local/yewubao/bb/bb.jar &
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP