HOWTO Create a Service
Revision as of 18:09, 6 August 2014 by Hef (talk | contribs) (→Start Your Service and Check for Log Output)
Philosophy
- ease of use
- pass off project maitinance
Working on Sally
All members have shell and admin access on sally.
ssh [email protected] sudo uname -a
Create Your Service Environment
Create a System Account for your Service
sudo useradd strup -b /srv/ -m -r
Working with SystemD
Create a unit file: /etc/systemd/system/strup.service
[Unit] Description=Strup IRC bot [Service] Type=simple User=strup Group=strup ExecStart=/usr/local/bin/ircbot WorkingDirectory=/srv/strup/ [Install] WantedBy=multi-user.target
Start Your Service and Check for Log Output
sudo systemctl start strup.service sudo systemctl status strup.service
To follow log output:
sudo journalctl -u strup.service -f
Initially, in my example, I see <quote>ircbot: /home/PS1/hef/projects/strup/irc/main.cpp:45: int main(int, char**): Assertion `file.is_open()' failed.</quote> because I havn't created a file yet.
Working with Service Files
If you tried to see your service user's home directory earlier, you may have noticed it didn't work. switch to your service accounts users.
sudo su strup cd
My example requires a file from project gutenberg.
wget http://www.gutenberg.org/cache/epub/11/pg11.txt
Don't forget to switch back to your normal user when done
exit
Enabling Your Service
After verifying that the service is starting and running correctly:
sudo systemctl status strup
Enable the service
sudo systemctl enable strup
The service is now configured to start when the machine reboots.