项目开发中使用Weblogic部署项目应用,在Linux环境下,需要了解Weblogic的启动等相关操作。本文做一个工作笔记整理:
1.1 启动weblogic相关
1.2 停止weblogic相关
1.3 查看weblogic进程相关
1.4 解决weblogic启动慢问题(调优)
1.5 修改weblogic jvm 参数(调优)
2.1 启动weblogic相关
2.1.1 启动weblogic,并在终端(屏幕) 输出日志
切入启动脚本所在目录(一般为bin),输入命令:
$ ./startWeblogic.sh &
备注:
1、仅加 & 表示 执行命令在当前会话后台可运行,会在终端显示,Ctrl +C 可用(切回命令行),关闭会话(如shell)执行过命令失效(已验证);
2、仅加 nohup 表示 执行命令在关闭会话(如shell)后依旧有效,但 Ctrl +C 不可用(切回命令行),会导致执行过命令失效(待验证);
3、nohup+& 一起使用,进程真正不受shell中Ctrl C和shell关闭的影响;
2.1.2 启动weblogic,并指定文件输出日志(不指定文件路径则在当前路径下,且文件会自动创建)
$ nohup ./startWeblogic.sh >out.log 2>&1 &
备注:
1、linux中默认定义两个变量:1指标准输出;2指错误输出,所以写成这样:command 1>output 2>error & ,正常的输出在output文件里,错误的输出在error文件里。这里也等同于command >output 2>error &;
2、有时候只想保留一种,另外一个既不输出又不保存,那就用到这个设备/dev/null,所以忽略错误输出:command 1>output 2>/dev/null & ;忽略标准输出:command 1>/dev/null 2>error &;忽略全部输出: command 1>/dev/null 2>/dev/null
3、1,2两种信息之间还可以进行重定向,所以这种:command 1>output 2>&1 & 表示错误输出也重定向回标准输出,即两种信息都保存到output里。那干嘛不写成command 1>output 2>output & 呢?答案是这样不行,别看都输出到/dev/null可以,但如果写成相同的文件名会导致冲突,所以如果想同时保留只能是上面的写法;同理:忽略全部输出还可以写成: command >/dev/null 2>&1 &;
这样的文件输出,每次运行会覆盖现有的文件,如果我们希望追加而不是覆盖,那么就用>>符号,这样命令就是: command 1>>log 2>>error &
2.1.3 启动 weblogic 下 server,并指定文件输出日志
$ nohup ./startManagedWeblogic.sh serverName >out.log 2>&1 &
2.2 停止weblogic相关
2.2.1 停止weblogic
$ ./stopWeblogic.sh
备注:./stopWeblogic.sh 命令执行后,虽然会导致weblogic控制台界面无法访问,部署的应用也无法再访问,但使用grep查看weblogic进程,会发现其他server节点相关的进程依旧存在。提起这一点,是因为在执行./stopWeblogic.sh 后重启weblogic,有时会出现启动异常,这时候,grep一下weblogic的相关进程并kill掉,往往就可以启动成功了。
2.2.2 停止weblogic server 节点
$ ./stopManagedWebLogic.sh serverName
2.3 查看weblogic进程相关
2.3.1 查看weblogic进程
$ ps -ef | grep weblogic
2.3.2 杀死weblogic进程
$ kill -9 进程ID
2.3.3 查看weblogic日志
$ tail xxx.log -n 300 -f
备注:查看底部即最新300条日志记录,并实时刷新
2.4 解决weblogic启动慢问题(调优)
网上整理出的,项目中自己使用过的是第一种。
Weblogic在Linux下启动特别慢及进入控制台慢的解决方法,实际是JVM在Linux下的bug,他想调用一个随机函数,但取不到。
2.4.1 较好的解决办法: 在Weblogic启动参数里添加 “-Djava.security.egd=file:/dev/./urandom” (/dev/urandom 无法启动)
在weblogic启动脚本里setDomainEnv.sh: 加入以下内容
JAVA_OPTIONS="${JAVA_OPTIONS} -Djava.security.egd=file:/dev/./urandom"
export JAVA_OPTIONS
2.4.2 最差的解决办法: 执行命令 mv /dev/random /dev/random.ORIG ; ln /dev/urandom /dev/random
将/dev/random 指向/dev/urandom
2.4.3 最好的解决办法: 修改Linux上Weblogic使用的jdk $JAVA_HOME/jre/lib/security/java.security 文件,
将 securerandom.source=file:/dev/urandom 修改为securerandom.source=file:/dev/./urandom
这样可以解决任何一个域Weblogic启动慢的问题。
2.4.4 其他(与 1 差不多)
JAVA_PROPERTIES="${JAVA_PROPERTIES} ${WLP_JAVA_PROPERTIES}"
export JAVA_PROPERTIES
JAVA_OPTIONS="${JAVA_OPTIONS} ${JAVA_PROPERTIES} -Duser.timezone=GMT+08 -Djava.security.egd=file:/dev/./urandom -DUseSunHttpHandler=true -Dwlw.iterativeDev=${iterativeDevFlag} -Dwlw.testConsole=${testConsoleFlag} -Dwlw.logErrorsToConsole=${logErrorsToConsoleFlag}"
export JAVA_OPTIONS
如上,在JAVA_OPTIONS 后面加上
-Duser.timezone=GMT+08 -Djava.security.egd=file:/dev/./urandom -DUseSunHttpHandler=true
ps:由于Windows上对/dev/urandom实现机制不一样,所以在Windows上不会出现上述为题。
2.5 修改weblogic jvm 参数(调优)
bin 目录下,修改setDomainEnv.sh
if [ "${VM_TYPE}" = "HotSpot" ]; then
WLS_MEM_ARGS_64BIT="-Xms512m -Xmx1024m"
export WLS_MEM_ARGS_64BIT
WLS_MEM_ARGS_32BIT="-Xms512m -Xmx1024m"
export WLS_MEM_ARGS_32BIT
fi
评论区欢迎讨论!觉得有用点个赞再走吧。感谢!!!