centos oot用户service httpd报错bash: service: command not found错误

发布时间:2020-11-15编辑:脚本学堂
用普通用户登录,然后su到root用户,准备重启httpd服务 [root@localhost nagios-3.2.3]# service httpd restart bash: service: command not found

用普通用户登录,然后su到root用户,准备重启httpd服务
[root@localhost nagios-3.2.3]# service httpd restart
bash: service: command not found

国外一个论坛有解释,大家也可以参考一下:
http://www.linuxquestions.org/questions/linux-newbie-8/service-__-restart-bash-command-isnt-working-102136/
说不能使用su root这种形式转到root。

需要使用
[root@localhost nagios-3.2.3]$ su – root
或者
[root@localhost nagios-3.2.3]$ su -
或者
直接su root然后写service绝对路径  /sbin/service servicename start
转到root用户才能使用service。
这样就不会再出现bash: service: command not found 错误了。

至于,为什么要用-符号?看了下su命令的help
[root@localhost ~]# su –help
Usage: su [OPTION]… [-] [USER [ARG]…]
Change the effective user id and group id to that of USER.

-, -l, –login               make the shell a login shell
-g –group=group             specify the primary group
-G –supp-group=group        specify a supplemental group
-c, –commmand=COMMAND       pass a single COMMAND to the shell with -c
–session-command=COMMAND    pass a single COMMAND to the shell with -c
and do not create a new session
-f, –fast                   pass -f to the shell (for csh or tcsh)
-m, –preserve-environment   do not reset environment variables
-p                           same as -m
-s, –shell=SHELL            run SHELL if /etc/shells allows it
–help     display this help and exit
–version  output version information and exit

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

Report bugs to <bug-coreutils@gnu.org>.

就是这个-或-l或–login,其实都是一样的效果
-, -l, –login   make the shell a login shell