码迷,mamicode.com
首页 > 数据库 > 详细

Linux下oracle环境变量无效问题

时间:2016-01-14 20:34:46      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:

今天在维护oracle数据库时,查看监听的状态,执行

#lsnrctl status

报错: -bash:lsnrctl:command not found。以前并不会这样,仔细想了一下,问题找到了,我是以root远程登录到服务器上,维护oracle时,直接 su oracle,这样操作虽然用户切换为oracle,但是环境变量仍然是root的环境变量,所以会报环境变量错误,正确的命令是su - oracle,这样环境变量也会切换为oracle的环境变量。
看一下 su 命令的 man page

NAME
su - run a shell with substitute user and group IDs

SYNOPSIS
su [OPTION]... [-] [USER [ARG]...]

DESCRIPTION
Change the effective user id and group id to that of
USER.

-, -l, --login
make the shell a login shell, clears all envvars
except for TERM, initializes HOME, SHELL, USER,
LOGNAME and PATH

...

A mere - implies -l. If USER not given, assume root.

可以看到,加了 - 选项后,会清空除term外的环境变量,重新初始化HOME、SHELL、USER、LOGNAME和PATH。

所以要多注意细节,尤其Linux下面,一点点的不一样,都有可能引起完全不同的结果。

Linux下oracle环境变量无效问题

标签:

原文地址:http://www.cnblogs.com/chunglin/p/5131349.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!