免费注册 查看新帖 |

Chinaunix

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

[系统管理] 关于重启tomcat的疑问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-07-31 10:03 |只看该作者 |倒序浏览
昨天写了个重启tomcat的脚本,直接执行可以成功重启tomcat
但定时放在晚上执行,重启tomcat失败了
通过日志知道是因为没有定义环境变量$JAVA_HOME
我想问的是为什么直接执行不需要定义$JAVA_HOME
当定时执行需要$JAVA_HOME呢、这中间有什么区别

论坛徽章:
0
2 [报告]
发表于 2012-07-31 11:41 |只看该作者
本帖最后由 qazxsw9999 于 2012-07-31 12:19 编辑

自己找到原因了:
通过测试发现:系统环境变量(比如$HOME)在直接执行和定时任务中都可以正确调用
                     但当用export定义的定义环境变量直接执行时可正确调用,但当作为定时任务时,无法调用,需要在脚本中重新定义

论坛徽章:
21
白羊座
日期:2013-08-23 15:49:17金牛座
日期:2013-10-08 17:00:03处女座
日期:2013-10-12 11:54:11CU十二周年纪念徽章
日期:2013-10-24 15:41:34午马
日期:2013-11-27 14:07:21巨蟹座
日期:2013-12-04 10:56:03水瓶座
日期:2013-12-04 15:58:00亥猪
日期:2014-05-24 16:02:3115-16赛季CBA联赛之辽宁
日期:2016-11-07 13:52:53戌狗
日期:2013-08-23 16:15:31白羊座
日期:2013-08-24 21:59:24巨蟹座
日期:2013-08-25 16:34:24
3 [报告]
发表于 2012-07-31 12:00 |只看该作者
qazxsw9999 发表于 2012-07-31 11:41
自己找到原因了:
通过测试发现:系统环境变量在直接执行和定时任务中都可以正确调用
                   ...


可能是因为你没把环境变量放在PATH里,我感觉。

论坛徽章:
13
15-16赛季CBA联赛之同曦
日期:2016-01-28 19:52:032015亚冠之北京国安
日期:2015-10-07 14:28:19NBA常规赛纪念章
日期:2015-05-04 22:32:03处女座
日期:2015-01-15 19:45:44卯兔
日期:2014-10-28 16:17:14白羊座
日期:2014-05-24 15:10:46寅虎
日期:2014-05-10 09:50:35白羊座
日期:2014-03-12 20:52:17午马
日期:2014-03-01 08:37:27射手座
日期:2014-02-19 19:26:54子鼠
日期:2013-11-30 09:03:56狮子座
日期:2013-09-08 08:37:52
4 [报告]
发表于 2012-07-31 12:04 |只看该作者
肯定要定义在脚本里面的呵! ^_^

论坛徽章:
0
5 [报告]
发表于 2012-07-31 12:13 |只看该作者
不是PATH的问题,我是在找直接执行和定时任务的区别,那些需要定义的环境变量已经通过命令export在终端已将定义,可通过set查看。
直接执行的脚本可以调用这些已将export的环境变量,但定时任务无法调用。


   

论坛徽章:
0
6 [报告]
发表于 2012-07-31 12:17 |只看该作者
ulovko 发表于 2012-07-31 12:04
肯定要定义在脚本里面的呵! ^_^


我现在知道肯定要定义在脚本里面,只是想知道“为什么”,现在已将知道了表层原因,进一步估计就牵扯到了内核了  ^_^!

论坛徽章:
13
15-16赛季CBA联赛之同曦
日期:2016-01-28 19:52:032015亚冠之北京国安
日期:2015-10-07 14:28:19NBA常规赛纪念章
日期:2015-05-04 22:32:03处女座
日期:2015-01-15 19:45:44卯兔
日期:2014-10-28 16:17:14白羊座
日期:2014-05-24 15:10:46寅虎
日期:2014-05-10 09:50:35白羊座
日期:2014-03-12 20:52:17午马
日期:2014-03-01 08:37:27射手座
日期:2014-02-19 19:26:54子鼠
日期:2013-11-30 09:03:56狮子座
日期:2013-09-08 08:37:52
7 [报告]
发表于 2012-07-31 12:18 |只看该作者
回复 6# qazxsw9999


    尽量不要修改 /etc/crontab 本身的设定  对系统原配的基本原则是 尽量不做修改,使用其他文件替代

论坛徽章:
0
8 [报告]
发表于 2012-07-31 12:23 |只看该作者
回复 7# ulovko


    你的意思是可以修改/etc/crontab 是定时脚本直接调用外部export的系统变量吗??

论坛徽章:
21
白羊座
日期:2013-08-23 15:49:17金牛座
日期:2013-10-08 17:00:03处女座
日期:2013-10-12 11:54:11CU十二周年纪念徽章
日期:2013-10-24 15:41:34午马
日期:2013-11-27 14:07:21巨蟹座
日期:2013-12-04 10:56:03水瓶座
日期:2013-12-04 15:58:00亥猪
日期:2014-05-24 16:02:3115-16赛季CBA联赛之辽宁
日期:2016-11-07 13:52:53戌狗
日期:2013-08-23 16:15:31白羊座
日期:2013-08-24 21:59:24巨蟹座
日期:2013-08-25 16:34:24
9 [报告]
发表于 2012-07-31 12:23 |只看该作者
qazxsw9999 发表于 2012-07-31 12:13
不是PATH的问题,我是在找直接执行和定时任务的区别,那些需要定义的环境变量已经通过命令export在终端已将 ...


你的export在终端定义的?还是写到了.bash_profile?   

这两个方法可是不同。

论坛徽章:
0
10 [报告]
发表于 2012-07-31 12:39 |只看该作者
.bash_profile 只定义了PATH像HOME,OSTYPE等系统变量都没存到.bash_profile中。
比如:text.sh

#!/bin/bash

echo "$HOME"
echo "$OSTYPE"

echo "$JAVA_HOME"

exit 0
直接执行结果:
[wzw@localhost ~]$ ./text.sh
/home/wzw
linux-gnu
/etc/java

定时执行结果:
[wzw@localhost ~]$ more test.log

/home/wzw
linux-gnu

终端定义的$JAVA_HOME就显示不了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP