有没有办法将一个值通过管道传输到守护进程中,以便在守护进程启动时填充成功启动所需的服务选项。我运行的是 Debian 9,下面是一段代码:
start-stop-daemon --start --chuid $USER \
$START_STOP_OPTIONS --exec $DAEMON -- \
--username $VPN_USER --password $VPN_PASSWORD --domain $VPN_DOMAIN \
$OPTIONS $VPN_SERVER:$VPN_SERVER_PORT&
理想情况下我需要解析Y
进入守护进程,否则守护进程正在执行的服务无法正确启动。我尝试过 echo
中的标准输入混合>>>
<<<
--exec
的内部和外部但运气不佳...
TLDR;
我该如何让它发挥作用?
echo "Y" | start-stop-daemon ...
最佳答案
执行此操作的正确方法是在程序参数中使用 -y
开关(例如),该开关将在没有提示的情况下启动守护程序。一般来说,没有这个选项是一个非常糟糕的做法。
否则我只是使用一个简单的 python 脚本进行测试,该脚本提示输入“Y”并且它可以工作。 脚本:
#!/usr/bin/python3
from time import sleep
k = input("prompt:")
if k == "Y":
print("exit!")
exit(1)
while True:
sleep(100)
我运行它就像echo "Y"| start-stop-daemon --start --exec/home/user/tests/startd.py
并打印 exit!
并退出。
如果需要多个“Y”,您可以尝试 yes
程序,例如
是“Y”|启动-停止-守护进程 --start --exec yourdaemon
。
关于Linux Debian 9 守护进程标准输入 (bash),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52169728/