在 Windows 内定期启动和停止命令
Start and stop command periodically, in Windows
我正在使用 this Python 程序连接到 VPS 并创建 NAT 隧道。
My Home Windows PC <-- My Linux VPS <-- The internet
所以现在,即使我的 PC 在 NAT 后面,也可以访问公开暴露的 VPS,它会将请求重新路由到 Python 脚本,然后脚本会重新路由它到我的家用电脑。
要在家用 PC 上启动 Python 脚本,我使用这个简单的批处理文件:
cd "%~dp0"
python.exe natsrv.py --mode client --secret hunter1 --local 127.0.0.1:8080 --admin myvps.ip.here:8999
这将启动永不停止的 Python 脚本:它会无限期地运行,直到我关闭批处理 window。很好。
问题在于:如果隧道有几分钟未使用,它会默默地停止为请求提供服务。这不会停止 Python 脚本的执行,它会继续执行...它只是停止工作,但会继续运行。
我可以在 Python 脚本中解决这个问题,但它非常复杂,我不想弄乱它:我想要一个更简单的解决方案。
批处理文件应停止 python.exe 的执行并重新启动,每 5 分钟 。我该怎么做?
SLEEP 和 GOTO 命令或我尝试过的任何类似命令将在 Python 脚本结束之前等待,然后再被触发!
我需要告诉批处理脚本(或任何控制它的实体)python.exe 必须停止并每 5 分钟重新启动一次,无论它是否仍然是 运行。可能吗?
您可以使用与子进程相同的命令行参数将 python 脚本写入 运行 natsrv.py
。 5 分钟后终止它并重复。
mynatsrv.py
import subprocess as subp
import sys
import time
if __name__ == "__main__":
while True:
p = subp.Popen(["python.exe", "natsrv.py"] + sys.argv[1:])
time.sleep(5*60)
p.terminate()
p.wait()
命令行是
cd "%~dp0"
python.exe mynatsrv.py --mode client --secret hunter1 --local 127.0.0.1:8080 --admin myvps.ip.here:8999
我正在使用 this Python 程序连接到 VPS 并创建 NAT 隧道。
My Home Windows PC <-- My Linux VPS <-- The internet
所以现在,即使我的 PC 在 NAT 后面,也可以访问公开暴露的 VPS,它会将请求重新路由到 Python 脚本,然后脚本会重新路由它到我的家用电脑。
要在家用 PC 上启动 Python 脚本,我使用这个简单的批处理文件:
cd "%~dp0"
python.exe natsrv.py --mode client --secret hunter1 --local 127.0.0.1:8080 --admin myvps.ip.here:8999
这将启动永不停止的 Python 脚本:它会无限期地运行,直到我关闭批处理 window。很好。
问题在于:如果隧道有几分钟未使用,它会默默地停止为请求提供服务。这不会停止 Python 脚本的执行,它会继续执行...它只是停止工作,但会继续运行。
我可以在 Python 脚本中解决这个问题,但它非常复杂,我不想弄乱它:我想要一个更简单的解决方案。
批处理文件应停止 python.exe 的执行并重新启动,每 5 分钟 。我该怎么做?
SLEEP 和 GOTO 命令或我尝试过的任何类似命令将在 Python 脚本结束之前等待,然后再被触发!
我需要告诉批处理脚本(或任何控制它的实体)python.exe 必须停止并每 5 分钟重新启动一次,无论它是否仍然是 运行。可能吗?
您可以使用与子进程相同的命令行参数将 python 脚本写入 运行 natsrv.py
。 5 分钟后终止它并重复。
mynatsrv.py
import subprocess as subp
import sys
import time
if __name__ == "__main__":
while True:
p = subp.Popen(["python.exe", "natsrv.py"] + sys.argv[1:])
time.sleep(5*60)
p.terminate()
p.wait()
命令行是
cd "%~dp0"
python.exe mynatsrv.py --mode client --secret hunter1 --local 127.0.0.1:8080 --admin myvps.ip.here:8999