AWS实例中停止Shiny-Server报错:sudo: stop: command not found及后续问题
解决AWS实例上Shiny-Server停止失败的问题
这是个很典型的服务管理工具版本冲突问题——AWS当前的Ubuntu实例默认使用systemd作为服务管理器,而非老旧的Upstart,所以你用stop命令自然会报错,后续安装upstart-sysv反而打乱了系统默认的服务管理逻辑,才出现了连接Upstart失败的新问题。下面一步步帮你解决:
第一步:恢复systemd服务管理
先卸载你安装的Upstart组件,切回系统默认的systemd:
sudo apt-get remove upstart-sysv sudo apt-get install systemd-sysv
执行完成后重启实例,确保systemd正常接管服务管理:
sudo reboot
第二步:用systemd命令管理Shiny-Server
重启完成后,就可以用systemd专属的systemctl命令来操作Shiny-Server了:
- 停止服务:
sudo systemctl stop shiny-server
- 确认服务状态(验证是否成功停止):
sudo systemctl status shiny-server
- 需要重新启动服务时:
sudo systemctl start shiny-server
顺便补全Shiny-Server密码保护的正确流程
既然你原本的目标是设置密码保护,停止服务后可以按以下步骤操作:
- 安装生成密码文件的工具:
sudo apt-get install apache2-utils
- 创建密码文件(示例路径为
/etc/shiny-server/.htpasswd,可自行调整):
sudo htpasswd -c /etc/shiny-server/.htpasswd your_username
执行后按照提示输入密码即可完成用户添加。
3. 编辑Shiny-Server配置文件/etc/shiny-server/shiny-server.conf,在需要保护的应用区块中添加认证配置:
location /your_app_name { site_dir /srv/shiny-server/your_app_name; auth_passwd_file /etc/shiny-server/.htpasswd; }
- 启动Shiny-Server,配置即可生效:
sudo systemctl start shiny-server
内容的提问来源于stack exchange,提问作者Beeba
相关产品推荐
相关产品推荐

