我正在创建一个简单的流量模拟器:一个每10秒卷曲一次Web服务器的客户端。使用Ansible配置客户端(Debian)和WebServer。当Ansible-SSH连接关闭时,后台循环也将关闭。
首先,我启动了命令:
$ while true; do curl python_webserver:8000; sleep10; done </dev/null >/dev/null 2>&1 &;
$ disown
它在Bash上运行良好,但是如果我将其放入脚本中,它将在ssh-connection端退出。 我尝试其他解决方案,例如使用:
$ nohup [command]
$ nohup /bin/bash -c '[command]
或使用“ deamonize”,但没有任何效果。我找不到在线作品;也许我错过了一些重要的事情。 (写pid很重要,但不是根本)
我在这里脚本,也许有一个很大的新手错误。
#!/bin/bash
PORT=8000
while true; do
curl python_webserver:$PORT
sleep 10
done >/dev/null 2>&1 &
ANSIBLE_CLIENT_PID=$!
echo $ANSIBLE_CLIENT_PID >> /tmp/ANSIBLE_PID.txt
disown
答案 0 :(得分:0)
答案是
nohup sh -c 'while true; do curl python_webserver:'"$PORT"'; sleep 10; done >/dev/null 2>&1' &
可能我用引号引起了错误。 谢谢大家的帮助
(特别是Kamil Cuk的解决方案)