Line 1: |
Line 1: |
− | == Philosophy == | + | == Why do it this way? == |
| | | |
− | * ease of use | + | * Your service will be watchdogged by systemd |
− | * pass off project maitinance | + | * Your service will recover from network and power outages. |
| + | * It allows other members to help maintain your service, or disable it cleanly if it need attention. |
| + | * It's great for IRC bots |
| | | |
| == Working on Sally == | | == Working on Sally == |
Line 9: |
Line 11: |
| | | |
| | | |
| + | |
| + | You also have sudo (root user) access. |
| + | |
| sudo uname -a | | sudo uname -a |
| | | |
Line 16: |
Line 21: |
| | | |
| sudo useradd strup -b /srv/ -m -r | | sudo useradd strup -b /srv/ -m -r |
| + | |
| + | |
| + | The creates a user named <code>strup</code>. The -b indicates the base home directory is /srv/, and therefore the system accounts home directory is /srv/strup/ |
| | | |
| == Working with SystemD == | | == Working with SystemD == |
Line 41: |
Line 49: |
| sudo systemctl start strup.service | | sudo systemctl start strup.service |
| sudo systemctl status strup.service | | sudo systemctl status strup.service |
− |
| |
| | | |
| To follow log output: | | To follow log output: |
Line 48: |
Line 55: |
| | | |
| | | |
− | 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. | + | Initially, in my example, I see <code>ircbot: /home/PS1/hef/projects/strup/irc/main.cpp:45: int main(int, char**): Assertion `file.is_open()' failed.</code> because I havn't created a file yet. |
| | | |
| === Working with Service Files === | | === Working with Service Files === |
Line 55: |
Line 62: |
| | | |
| sudo su strup | | sudo su strup |
| + | |
| + | |
| + | Your are now running as the user ''strup'', but you are now in the user's home directory. Running <code>cd</code> without parameters will switch to the current user's home directory. |
| cd | | cd |
| + | |
| | | |
| My example requires a file from project gutenberg. | | My example requires a file from project gutenberg. |
Line 69: |
Line 80: |
| After verifying that the service is starting and running correctly: | | After verifying that the service is starting and running correctly: |
| | | |
− | sudo systemctl status strup | + | sudo systemctl status strup.service |
| | | |
| Enable the service | | Enable the service |
| | | |
− | sudo systemctl enable strup | + | sudo systemctl enable strup.service |
| | | |
| The service is now configured to start when the machine reboots. | | The service is now configured to start when the machine reboots. |