Возможно, причина в том, что он не работает, в том, что lighttpd является демоном, и демоны закрывают свои файловые дескрипторы stdin / stdout / stderr. Программа, которую вы запускаете, нуждается в терминале с открытыми дескрипторами, но они унаследованы от вызывающей стороны и, следовательно, закрыты. Таким образом, при вызове внешней программы вы должны предоставить их самостоятельно. Например:
from subprocess import call, STDOUT, PIPE
retval = call(['program', 'arg1', 'arg2'], stdin = PIPE, stdout = PIPE, stderr = STDOUT)
См. Объяснения и примеры в Документы Python