在 Debian(以及大多数 Linux 发行版)中,lsnrctl 是 Oracle Database Listener 的管理工具,不是系统自带命令,而是 Oracle 安装后提供的。
要停止监听(Listener),步骤如下:
先确认 lsnrctl 在你的 PATH 中:
which lsnrctl
如果找不到,通常是 Oracle 环境变量没设置,可尝试:
source /u01/app/oracle/product/19.3.0/dbhome_1/bin/lsnrctl
或根据你的 Oracle 安装路径设置环境变量:
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
lsnrctl stop
如果监听器名称不是默认的 LISTENER,需要指定:
lsnrctl stop LISTENER_NAME
lsnrctl status
输出中如果看到类似内容,说明已停止:
TNS-12541: TNS:no listener
command not found说明:
解决:
su - oracle
然后执行:
lsnrctl stop
需要使用 oracle 用户,而不是 root:
su - oracle
lsnrctl stop
如果 lsnrctl stop 无效,可手动杀进程:
ps -ef | grep tnslsnr
kill -9 <PID>
⚠️ 不建议,可能导致资源未释放。
✅ 标准停止方式:
su - oracle
lsnrctl stop
如果你愿意,可以告诉我:
我可以帮你进一步排查。