Linux Debian 9 daemon stdin (bash)



有没有办法将值通过管道传输到守护程序中,以便在守护程序启动时填充成功启动所需的服务选项。我正在运行 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.

最新更新