我在蜂窝调制解调器中有一个嵌入式 Linux 系统,具有 Web GUI 和 SSH 访问权限。为了安全起见,我希望能够在需要时从 SSH 启用 Web GUI,否则禁用它。该环境大致基于 OpenWRT,但 Web 服务器实现不同,使用 uwsgi 而不是典型的 uhttpd 使用。
我已经回顾了有关uswgi管理的文章和正在使用的“皇帝模式”。 系统使用的是 uswgi 版本 2.0.18。
我尝试了
# /etc/init.d/uwsgi stop
和# /etc/init.d/uwsgi disable
。没有显示错误消息(或任何消息),但 Web GUI 仍然可用。 init.d 文件如下所示:
# cat /etc/init.d/uwsgi
#!/bin/sh /etc/rc.common
START=79
USE_PROCD=1
start_service() {
procd_open_instance
procd_set_param command /usr/sbin/uwsgi --ini /etc/uwsgi/emperor.ini
procd_set_param stderr 1
procd_set_param file /etc/uwsgi/emperor.ini
procd_set_param respawn
procd_close_instance
}
运行
# /etc/init.d/uwsgi stop
和# /etc/init.d/uwsgi disable
后,我查看系统日志,发现了这个:
2024 Nov 30 18:41:02 E1500-4 lua: luci: accepted login on /admin/system/flash for root from 10.0.0.12
2024 Nov 30 18:41:17 E1500-4 uwsgi[4687]: *** has_emperor mode detected (fd: 8) ***
2024 Nov 30 18:41:17 E1500-4 uwsgi[4687]: [uWSGI] getting INI configuration from /etc/uwsgi/vassals/luci-cgi_io.ini
2024 Nov 30 18:41:17 E1500-4 uwsgi[4687]: Sat Nov 30 18:41:17 2024 - [emperor] vassal /etc/uwsgi/vassals/luci-cgi_io.ini has been spawned
2024 Nov 30 18:41:17 E1500-4 uwsgi[4687]: Sat Nov 30 18:41:17 2024 - [emperor] vassal /etc/uwsgi/vassals/luci-cgi_io.ini is ready to accept requests
2024 Nov 30 18:41:17 E1500-4 uwsgi[4687]: Sat Nov 30 18:41:17 2024 - [emperor] vassal /etc/uwsgi/vassals/luci-cgi_io.ini is now loyal
可能“皇帝模式”正在重新生成服务器。是否有其他服务可以阻止“皇帝”,或告诉它忽略某些应用程序?任何人都可以向我指出有关在 uwsgiemperor 模式环境中临时启用和禁用服务器应用程序的参考吗?
这是用户错误 - 我不小心在与通过 SSH 连接的系统不同的系统实例上测试了 HTTPS 可用性。 这些命令确实按预期工作:
# /etc/init.d/uwsgi stop
# /etc/init.d/uwsgi disable
# /etc/init.d/uwsgi enable
# /etc/init.d/uwsgi start
希望这对其他人有帮助,因为我发现有关 uwsgi 的信息相对较少。