在没有可见命令提示符窗口的情况下在 Windows 上自动启动 websocket 服务器

Posted

技术标签:

【中文标题】在没有可见命令提示符窗口的情况下在 Windows 上自动启动 websocket 服务器【英文标题】:Start the websocket server automatically on Windows without a visible command prompt window 【发布时间】:2020-06-20 00:28:21 【问题描述】:

我想启动一个 websocket 服务器,比如使用“php artisan websocket:serve”,但它会自动从 windows 启动,并且没有 windows 命令提示符。我知道如何在带有主管的 Linux 上执行此操作,但我需要在带有 Xampp 的 Windows 7 上执行此操作。 我目前使用 Windows 自动启动的批处理文件,虽然它可以正常工作,但我希望命令提示符窗口不会保持永久可见,因为 PC 用于其他业务,有时用户会错误地关闭窗口,停止套接字服务器。

当然,非常感谢您的回答,请原谅我的英语不好。

【问题讨论】:

【参考方案1】:

有几种方法可以在没有可见控制台窗口的情况下启动 Windows 进程。首先,您可以创建 Windows 服务,一些软件本身支持它,或者您可以使用像 NSSM 这样的实用程序。第二:您可以通过任务调度程序启动程序并调整任务属性。第三:您可以使用CHP 之类的实用程序在没有控制台窗口的情况下启动程序。记住一件事:如果您在没有控制台窗口的情况下启动程序(并且它不是 Windows 服务),则停止它的唯一方法是 taskkill 命令或 GUI 任务管理器。

【讨论】:

感谢您的回答,我能够解决我的问题。为了补充给出的答案,我现在将描述我解决问题所遵循的一系列步骤:1)安装 NSSM 2)将 websocket 安装为 windows 服务:nssm install websocket "C:\xampp\php\php.exe " artisan websocket:serve nssm set websocket AppDirectory "C:\xampp\htdocs\projectfolder" nssm set websocket DisplayName "Web Socket Server" nssm set websocket Description "Web Socket Server for Laravel" nssm start websocket 3) 检查 web socket 是否运行: nssm 状态 websocket 嗨@FedericoPayes我按照你的步骤成功运行了服务,但是当我进入webApp时,这会抛出CORS错误,你使用PID而不是典型的端口6001吗?【参考方案2】:

要在 Windows 机器上初始化 websocket 服务器,无需命令提示符,只需将 autoexec.bat 设置为 halt_threads 2

【讨论】:

以上是关于在没有可见命令提示符窗口的情况下在 Windows 上自动启动 websocket 服务器的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Python 在没有窗口的情况下在屏幕上显示文本

是否可以在不安装 Python 的情况下在 Windows 上安装 Robot Framework?

如何在不让 Flash 8 隐藏工具提示的情况下在 ScrollPane 中显示工具提示?

在不使用 X-Windows 的情况下在 Linux 中设置或读取 Caps Lock 状态

电脑出现“损坏的图像”窗口提示dll没有被指定在Windows上运行如何解决

在没有虚拟化的情况下在 Windows 上运行 Docker