上一篇
linux如何启动was
- Linux
- 2025-08-07
- 5
在 Linux 中启动 WebSphere Application Server (WAS),可进入
/bin
目录,执行
./startServer.sh
;或通过 `wsadmin.sh
以下是关于 Linux 系统下启动 WebSphere Application Server (WAS) 的完整指南,涵盖安装、配置、启动/停止命令、常见问题及最佳实践等内容:
前置条件与环境准备
硬件与操作系统要求
项目 | 最低要求 | 推荐配置 |
---|---|---|
CPU | 2核 | 4核及以上 |
内存 | 4GB | 8GB+(根据应用负载调整) |
磁盘空间 | 5GB(基础安装) | 预留20%冗余空间 |
OS版本 | RHEL/CentOS 7+、Oracle Linux 8+ | 优先选择LTS长期支持版本 |
Java版本 | JRE 8/11(需与WAS版本匹配) | 详见IBM官方兼容性矩阵 |
软件包获取
- 下载地址:IBM Passport Advantage Portal(需有效许可证)
- 典型文件名:
was-ND-<version>.zip
(ND表示非开发者版) - 解压路径建议:
/opt/IBM/WebSphere/AppServer
用户与权限规划
角色 | 职责说明 | 推荐操作 |
---|---|---|
root |
初始安装与全局配置 | 仅用于解压安装包 |
wasadmin |
日常管理与进程控制 | 创建专用用户组,赋予目录所有权 |
websphere |
运行期主进程所有者 | 通过sudo提权执行启动脚本 |
️ 重要提示:切勿直接以
root
用户运行WAS进程,可能导致安全破绽和文件权限混乱。
安装与初始化配置
解压安装包
# 切换至目标目录 cd /opt/IBM # 解压安装包(假设文件名为was-ND-9.0.5.zip) unzip was-ND-9.0.5.zip -d /opt/IBM/WebSphere/AppServer # 设置目录权限(关键步骤!) chown -R wasadmin:wasadmin /opt/IBM/WebSphere/AppServer chmod -R u+rX,go-rwx /opt/IBM/WebSphere/AppServer/
生成Profile文件
每个WAS实例对应一个独立的Profile目录,包含专属的配置信息:
# 进入安装根目录的bin文件夹 cd /opt/IBM/WebSphere/AppServer/bin # 交互式创建Profile(推荐首次使用) ./createProfile.sh # 根据提示输入以下信息: # Profile名称:app_profile1(自定义) # JVM堆大小:建议设置为物理内存的50%-70%(如-Xmx2g) # 安装根路径:自动检测 # 节点名称:node1(可自定义) # 主机名:当前服务器主机名(可通过hostname命令查看) # 管理员用户名/密码:设置强密码(后续登录管理控制台使用)
备注:若需自动化部署,可改用非交互模式:
./createProfile.sh -profileName app_profile1 -profilePath /opt/IBM/WebSphere/Profiles/app_profile1 -installRoot /opt/IBM/WebSphere/AppServer -templatePath /opt/IBM/WebSphere/AppServer/profileTemplates/default -jvmOptions "-Xmx2g" -hostname $(hostname)
关键配置文件修改
文件路径 | 作用 | 修改建议 |
---|---|---|
<PROFILE_ROOT>/config/cells/<cell_name>/nodes/<node_name>/serverindex.xml |
定义服务器启动顺序 | 确保当前节点优先级最高 |
<PROFILE_ROOT>/config/cells/<cell_name>/nodes/<node_name>/servers/<server_name>/server.xml |
单个服务器核心配置 | 调整线程池大小、超时时间等参数 |
<PROFILE_ROOT>/config/cells/<cell_name>/nodes/<node_name>/servers/<server_name>/jvm.xml |
JVM参数配置 | 添加GC日志、监控指标端点 |
启动WAS的三种方式
▶️ 方法1:通过管理控制台(图形化界面)
- 打开浏览器访问:
https://<服务器IP>:9043/ibm/console
- 首次登录:使用创建Profile时设置的用户名/密码
- 导航路径:环境 > 服务器 > <目标服务器> > 启动
- 等待状态变为”RUNNING”(约需2-5分钟)
技巧:若遇到SSL证书警告,可将浏览器安全策略临时设为”接受风险”。
️ 方法2:命令行启动(推荐生产环境使用)
# 切换至Profile的bin目录 cd /opt/IBM/WebSphere/Profiles/app_profile1/bin # 启动指定服务器(如server1) ./startServer.sh server1 # 验证进程状态 ps -ef | grep java | grep server1
参数 | 说明 | 示例值 |
---|---|---|
-trace |
启用详细日志输出 | -trace=all=info |
-Dcom.ibm.wsspi. |
覆盖默认SPI实现 | -Dcom.ibm.wsspi.naming=... |
-heapdump |
JVM崩溃时生成堆转储文件 | -heapdump=/tmp/dump.bin |
方法3:系统服务化启动(适用于长期运行)
-
创建systemd服务单元文件:
[Unit] Description=WebSphere Application Server %i After=syslog.target network.target [Service] Type=forking ExecStart=/opt/IBM/WebSphere/Profiles/app_profile1/bin/startManager.sh ExecStop=/opt/IBM/WebSphere/Profiles/app_profile1/bin/stopManager.sh User=wasadmin Group=wasadmin Restart=always RestartSec=30 [Install] WantedBy=multi-user.target
-
保存为
/etc/systemd/system/websphere.service
-
加载并启动服务:
systemctl daemon-reload systemctl start websphere.service systemctl enable websphere.service # 开机自启
停止与重启操作
操作类型 | 命令示例 | 说明 |
---|---|---|
停止单个服务器 | ./stopServer.sh server1 |
立即终止服务 |
同步停止 | ./syncServers.sh stop |
确保事务完整后再停止 |
重启节点 | ./restartNode.sh node1 |
重启整个节点下的所有服务器 |
紧急终止 | kill -9 <PID> |
仅用于极端情况 |
️ 警告:直接杀死进程可能导致数据不一致,务必优先使用标准停止命令。
状态监控与日志分析
实时状态查询
# 查看所有服务器状态 cd /opt/IBM/WebSphere/Profiles/app_profile1/bin ./wsadmin.sh -conntype SOAP -host <管理IP> -port 9043 -user wsadmin -password <密码> -f checkServerStatus.py
日志文件定位
日志类型 | 路径 | 用途 |
---|---|---|
启动日志 | <PROFILE_ROOT>/logs/<server_name>/SystemOut.log |
记录启动过程及错误堆栈 |
访问日志 | <INSTALL_ROOT>/profiles/<profile>/logs/<server_name>/httpInstTopologyRoot.log |
HTTP请求明细 |
JVM垃圾回收日志 | <PROFILE_ROOT>/logs/<server_name>/gc.log |
GC活动统计 |
健康检查命令
# 检查Java进程是否存在 jps -lvm | grep java # 检查端口监听状态(默认HTTPS端口9043) netstat -tulnp | grep 9043
常见问题FAQ
Q1: 启动时报”Address already in use”错误怎么办?
A: 这是由于端口被其他进程占用导致的,解决方法如下:
- 查找占用进程:
lsof -i :9043
- 终止冲突进程:
kill -9 <PID>
- 若需更改WAS端口:
- 编辑
<PROFILE_ROOT>/config/cells/<cell_name>/nodes/<node_name>/servers/<server_name>/server.xml
- 修改
<httpEndpoint>
标签下的httpDefaultPort
属性值
- 编辑
- 重启WAS使配置生效。
Q2: 如何修改WAS的默认编码格式?
A: 默认编码为UTF-8,如需修改为GBK等编码:
- 编辑
<PROFILE_ROOT>/config/cells/<cell_name>/nodes/<node_name>/processDefinition.xml
- 添加以下属性到
<JavaProcessDef>
节点:<JVMEntries xmi:type="javaProcessDefEntryType"> <Entry key="java.util.logging.config.file" value="${SERVER_CONFIG_ROOT}/resources/logging.properties"/> <Entry key="sun.jnu.encoding" value="GBK"/> </JVMEntries>
- 重启WAS使配置生效。
最佳实践建议
- 资源隔离:为每个业务系统创建独立Profile,避免相互干扰。
- 性能调优:根据应用特点调整以下参数:
- JVM堆大小(
-Xmx
):不超过物理内存的80% - 线程池大小(
maximumPoolSize
):CPU核心数×2+1 - 连接池容量(
maxConnections
):根据数据库承载能力设定。
- JVM堆大小(
- 安全防护:
- 禁用不必要的管理端口(如9043改为高位端口)。
- 启用TLS加密通信。
- 定期轮换管理员密码。
- 备份策略:每日备份
<PROFILE_ROOT>
目录,保留最近7天的版本。 - 监控集成:将WAS日志接入ELK Stack,设置告警规则(如错误率超过阈值