On Sep 12, 2014, at 12:05 PM, Travis Griggs <travisgri...@gmail.com> wrote:
> Thanks all for the help/advice. I’m getting there. > > To experiment/learn, I made a simple python program (/Foo/cyclic.py): > > #!/usr/bin/env python3 > > import time > > while True: > time.sleep(5) > with open('sound', 'r') as file: > currentValue = file.read() > otherValue = 'tick' if currentValue == 'tock' else 'tock' > with open('sound', 'w') as file: > file.write(otherValue) > print(currentValue, '->', otherValue) > > Run from the command line, this tick-tocks nicely, both outputting, as well > as updating the ‘/Foo/sound’ file on a 5 second period. > > I then created a simple .service file: > > [Unit] > Description=Foo for learning service > After=network-online.target > > [Service] > Type=simple > ExecStart=/Foo/cyclic.py > WorkingDirectory=/Foo > StandardOutput=journal > > [Install] > WantedBy=multi-user.target > > I chose to be “explicit” with some of the default options (Type and > StandardOutput). > I finally executed: > > systemctl --system daemon-reload > systemctl enable foo > systemctl start foo > > It seems to work. Almost. The file is being updated regularly (watch cat > /Foo/sound shows the change happening). But I can’t seem to find the output > from my print() statement. journalctl -f doesn’t show anything. Nor does tail > -f /var/log/syslog or any of the others. It just seems to be going nowhere? > Is there something I need to do special to get the print() output going > somewhere logable? > Arghhh… I’ll answer my own question here. I wasn’t patient enough, when I checked after lunch, I found I had a mountain of tick/tock entries in journalctl -f. Python print() is buffered, so it wasn’t showing up except in huge blocks. Changed the .service file to start with -u and everything works as expected now. -- https://mail.python.org/mailman/listinfo/python-list