Я обертываю приложение fastcgi в bash script следующим образом:
#!/bin/bash
# stuff
./fastcgi_bin
# stuff
Поскольку bash выполняет только ловушки для сигналов, когда заканчивается передний план script, я не могу просто kill -TERM scriptpid
, потому что приложение fastcgi останется в живых.
Я попытался отправить двоичный код на задний план:
#!/bin/bash
# stuff
./fastcgi_bin &
PID=$!
trap "kill $PID" TERM
# stuff
Но если я так делаю это, очевидно, что stdin и stdout не перенаправлены должным образом, потому что он не соединяется с lighttpds mod_fastgi, версия переднего плана работает.
EDIT: Я рассматривал проблему, и это происходит потому, что bash перенаправляет /dev/null на stdin, когда программа запускается в фоновом режиме, поэтому любой способ избежать этого должен решить мою проблему.
Любой намек на то, как это решить?