Azure Ubuntu虚拟机浏览器SSH控制台无法使用systemd命令的问题
首先纠正你的命令错误:正确的systemd服务状态查询命令应该是 systemctl status redis,而非systemctl redis status。如果修正后依然提示找不到systemctl,说明你的Ubuntu虚拟机可能处于以下两种场景:
- 使用了Ubuntu 14.04及更早版本(这类版本默认采用Upstart而非systemd作为初始化系统)
- 浏览器SSH控制台的环境变量PATH异常,导致无法找到systemctl可执行文件
针对你的场景,可用的系统管理工具及用法如下:
service命令:这是Ubuntu中兼容多种初始化系统的通用工具,不管系统用systemd、Upstart还是SysVinit都能正常工作。查看Redis状态的命令为:
service redis status启动/停止Redis服务可对应使用
service redis start、service redis stop。Upstart工具(initctl):如果你的系统是Ubuntu 14.04及更早版本,可使用Upstart的
initctl命令管理服务:initctl status redis启动/停止命令为
initctl start redis、initctl stop redis。SysVinit脚本:部分自定义服务或老系统会使用SysVinit脚本,直接调用
/etc/init.d下的服务脚本即可:/etc/init.d/redis status启动/停止对应
/etc/init.d/redis start、/etc/init.d/redis stop。进程查询工具:如果以上服务管理工具都无法使用,可直接通过进程命令确认Redis运行状态:
ps aux | grep redis:列出所有与Redis相关的进程top/htop:实时查看系统进程资源占用情况(htop需提前安装)
另外,你可以通过lsb_release -a命令查看当前Ubuntu的版本,以此确认系统采用的初始化系统类型。如果是Ubuntu 16.04及以后版本(默认用systemd),可尝试用绝对路径调用systemctl:
/bin/systemctl status redis
内容的提问来源于stack exchange,提问作者user422005

