服务启动后检查进程

启动后进程检查

PID1=`ps -ef | grep /app/${sysC}/${subSysCode} | grep -v grep | awk -F " " '{print $2}'`
PORT1=`netstat -antlp | grep $PID1 | grep LISTEN | awk -F " " '{print $4}' | awk -F ":" '{print $2}'`
NOW1=`date "+%Y-%m-%d %H:%M:%S"`
CheckProcess()
{
PROCESS_NUM=`netstat -an | grep "$PORT1" |grep LISTEN |awk -F ":" '{print $2}'| wc -l`
if [[ ! $PID1 -eq 0 ]] && [[ $PROCESS_NUM -ge 1 ]];
then
return 0
else
return 1
fi
}
while [ 1 ]; do
CheckProcess "$PID1"
Check_ELA_RET=$?
if [[ $Check_ELA_RET -eq 0 ]];
then
echo -e "${NOW1} $PID "
echo -e "${NOW1} ${sysC} Port Process OK "
break
fi
if [[ $Check_ELA_RET -le 1 ]];
then
echo -e "${NOW1} ${USER_N} Port Process FAILED"
break
fi
done
##检查ERROR日志是否有输出
ROW3=`wc -l ${LOGS}$a | awk '{print $1}'`
if [ "$ROW2" -ne "$ROW3" ];then
echo "有错误日志输出请检查!!!"
fi
<think>我们正在处理用户的问题:“Linux MySQL 启动后如何检查运行进程” 根据引用[1]:可以使用命令 `ps aux | grep mysqld` 来查看mysql的启动状态。如果启动了就会看到mysql的进程号,如果启动,不会看到mysql,只能看到 root的进程号(实际上,grep命令本身也会显示,但通常我们会看到mysqld进程)。 引用[3]也提到了使用 `sudo service mysql status` 命令来检查MySQL服务状态,它会显示服务是否正在运行以及进程ID。 此外,引用[5]中显示了一些日志信息,说明在启动过程中可能遇到的问题,但用户当前的问题是如何检查运行进程。 因此,我们可以提供两种主要方法: 1. 使用 `ps` 命令结合 `grep` 来查找与MySQL相关的进程。 2. 使用系统服务管理命令(如 `service` 或 `systemctl`)来查看MySQL服务的状态。 注意:根据不同的Linux发行版,服务管理命令可能略有不同,但通常`service`命令在支持SysVinit的系统中可用,而`systemctl`在systemd系统中可用。不过,用户的问题中引用的命令都是使用`service`,所以我们主要使用`service`。 步骤: 1. 检查MySQL服务状态:`sudo service mysql status` 或 `systemctl status mysql`(如果使用systemd)。 2. 使用进程查看命令:`ps aux | grep mysqld`。 另外,需要注意的是,如果MySQL没有启动,那么`ps`命令将不会显示mysqld进程,而只会显示grep命令本身(因为grep在查找mysqld)。我们可以通过过滤掉grep命令本身来获得更清晰的结果,例如:`ps aux | grep mysqld | grep -v grep`。 但是,在回答中,我们可以直接告诉用户使用这些命令,并解释输出结果。 根据用户的问题,我们只需要回答如何检查运行进程,所以重点放在命令的使用和结果解读上。 此外,引用[2]和[4]提供了启动和停止MySQL服务的命令,以及自动重启的配置,但用户当前问题不涉及这些,所以不需要在回答中提及,除非用户有相关问题。 回答结构: 1. 介绍两种方法(服务状态命令和进程查看命令)。 2. 分别说明每个命令的使用方法和如何解读输出。 3. 提醒用户注意权限问题(可能需要sudo)。 生成相关问题:根据这个主题,我们可以生成一些相关问题,比如如何启动、停止、重启MySQL服务,或者如何解决MySQL启动失败的问题。 注意:用户引用的内容中,引用[5]提到了一种情况:启动成功但是没有进程(可能是启动后立即退出了),但用户当前问题是如何检查进程,所以我们先回答检查方法,如果用户遇到进程不存在的情况,可以进一步排查。 因此,回答如下:</think>### Linux MySQL 启动检查运行进程的方法 在 Linux 中检查 MySQL 的运行进程主要有以下两种方法,操作简单且结果直观: #### 方法一:使用 `ps` 命令查看进程(推荐) 1. **执行命令**: ```bash ps aux | grep mysqld ``` - 该命令会列出所有名称包含 `mysqld` 的进程 - 示例输出: ``` mysql 1234 0.0 2.1 1023456 54321 ? Ssl 10:00 0:05 /usr/sbin/mysqld ``` - **关键字段说明**: - 第二列(如 `1234`):MySQL 进程 ID(PID) - 最后一列:进程对应的执行文件路径 2. **过滤干扰项**(可选): ```bash ps aux | grep mysqld | grep -v grep ``` - `grep -v grep` 可排除命令自身产生的临时进程 #### 方法二:通过服务状态检查 ```bash sudo service mysql status ``` - 示例有效输出: ``` mysql start/running, process 1234 # 明确显示运行状态和进程ID ``` - 若服务运行,会提示 `mysql stop/waiting` #### 结果解读 | 场景 | 可能原因 | 解决方案 | |------|----------|----------| | 无 `mysqld` 进程 | 服务启动启动失败 | 1. 检查启动日志 `sudo tail -f /var/log/mysql/error.log`<br>2. 重启服务 `sudo service mysql restart` | | 进程短暂存在后消失 | 配置错误或资源不足 | 1. 检查内存 `free -h`<br>2. 验证配置文件 `sudo mysql -t < /etc/mysql/my.cnf` [^5] | | 权限问题 | 用户无查看权限 | 使用 `sudo` 执行命令 | > **注意**:若 MySQL 使用 MariaDB 分支,需将命令中的 `mysqld` 替换为 `mariadb`。检查进程时建议两种方法结合使用,`ps` 命令验证进程存在性,`service status` 确认服务健康状态 [^1][^3]。 --- ### 相关问题 1. MySQL 服务启动失败时如何查看错误日志? 2. 如何配置 MySQL 在系统启动时自动运行? 3. Linux 中如何安全停止 MySQL 服务? 4. MySQL 进程占用内存过高应如何优化? 5. 如何修改 MySQL 配置文件并使其生效? [^1]: Linux查看mysql是否启动+mysql启动(全) [^3]: Linux中启动MySQL服务的命令 [^5]: MySQL提示启动成功,实际进程并没有起来
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值