有没有办法将值通过管道传输到守护程序中,以便在守护程序启动时填充成功启动所需的服务选项。我正在运行 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
解析到守护程序中,否则守护程序正在执行的服务无法正确启动。我已经尝试了来自--exec
内外echo
>>>
<<<
的 stdin 混合物,但没有运气......
TLDR;我如何让它工作?echo "Y" | start-stop-daemon ...
正确的方法是在程序参数中有一个-y
开关(例如(,它将在没有提示的情况下启动守护程序。一般来说,没有这个选项是一种非常糟糕的做法。
否则,我只是使用提示"Y"的简单python脚本进行了测试,并且可以工作。 脚本:
#!/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
程序,例如yes "Y" | start-stop-daemon --start --exec yourdaemon
.