From charlesreid1

Revision as of 00:18, 10 September 2018 by Admin (talk | contribs) (Created page with "=Quick Guide to Startup Scripts= Three components are needed for a startup service: * Service script * Start script * Stop script The service script will run the service vi...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Quick Guide to Startup Scripts

Three components are needed for a startup service:

  • Service script
  • Start script
  • Stop script

The service script will run the service via systemd, while the start/stop scripts are actually called by the service.

These should be installed in a "standard" location like ~/scripts.

Service Script

The service script runs as sudo, so keep that in mind if you run any scripts that use the home variable or require user credentials in a dotfile in the home folder.

[Unit]
Description=Uncle Archie CI Server
After=multi-user.target

[Service]
Restart=always
ExecStart=/usr/bin/sudo -H -u ubuntu /usr/bin/bash /home/ubuntu/uncle-archie/scripts/start_archie.sh
uxecStop=/usr/bin/sudo pkill -f uncle_archie

[Install]
WantedBy=multi-user.target

Start Script

Example start script:

#!/bin/bash
#
# To test-run:
# 
#       sudo -H -u ubuntu ./start_archie.sh
# 
# To actually run:
# 
#       (install archie.service startup service)
#
# Shell script used to start up uncle archie
# so uncle archie can run as a startup service.
# 
# This is reliant on having pyenv set up already
# on beavo, the server that runs archie.

ARCHIE_DIR="/home/ubuntu/uncle-archie"
PYENV_BIN="/home/ubuntu/.pyenv/bin"

echo "Preparing python"
eval "$(${PYENV_BIN}/pyenv init -)"

echo "Changing directories"
cd ${ARCHIE_DIR}

echo "Installing virtualenv"
virtualenv vp
source vp/bin/activate

echo "Running Uncle Archie bare"
python ${ARCHIE_DIR}/uncle_archie.py && tail -f /nev/null

Stop Script

Example stop script:

#!/bin/bash
#
# This command actually goes straight into
# archie.service, don't use this script.

/usr/bin/sudo pkill -f uncle_archie

Flags