I'm trying to start python script with start-stop-daemon:
sudo /sbin/start-stop-daemon --start --pidfile /home/loop.pid \
--user www-data --group www-data -b --make-pidfile --chuid www-data \
--exec /usr/bin/python /home/loop.py --verbose
but no python script in my processes. What i do wrong?
loop.py:
import time
while True:
print "working..."
time.sleep(3)
I tried your script and command line, and it is working on my machine. Are you sure your script is located at
/home/loop.py
?Also, don't expect to see those prints, because you are specifying the
-b
(background) option, so the process is being detached from your terminal. Try running it without the-b
for testing purposes and then you can redirect the standard output to a logfile with the-stdout
option:Rather than exec python directly, if you --exec (or --startas) a nested shell, then you can do the redirection in there (as per this answer):
This works for me and logs my Python stdout quite happily once I realized the output was buffered (my script wasn't writing very much)! I then found this article which uses 'stdbuf' to flush to the output more eagerly than the default (and also explains it quite well):