Files
yt-local/docs/basic-script-openrc
Astounds bd008ebf91
All checks were successful
CI / test (push) Successful in 1m35s
CI / test (pull_request) Successful in 1m41s
docs: improve service guide and clarity
Restructure README, add admonitions, fix log command,
and refine script comments and safety notes.
2026-04-20 02:56:21 -05:00
..

Basic init yt-local for openrc

Prerequisites

  • System with OpenRC installed and configured.
  • Administrative privileges (doas or sudo).
  • ytlocal script located at /usr/sbin/ytlocal and application files in an accessible directory.

Service Installation

  1. Create the OpenRC service script /etc/init.d/ytlocal:

    #!/sbin/openrc-run
    # Distributed under the terms of the GNU General Public License v3 or later
    name="yt-local"
    pidfile="/var/run/ytlocal.pid"
    command="/usr/sbin/ytlocal"
    
    depend() {
        use net
    }
    
    start_pre() {
        if [ ! -f /usr/sbin/ytlocal ]; then
            eerror "Please create script file of ytlocal in '/usr/sbin/ytlocal'"
            return 1
        else
            return 0
        fi
    }
    
    start() {
        ebegin "Starting yt-local"
        start-stop-daemon --start --exec "${command}" --pidfile "${pidfile}"
        eend $?
    }
    
    reload() {
        ebegin "Reloading ${name}"
        start-stop-daemon --signal HUP --pidfile "${pidfile}"
        eend $?
    }
    
    stop() {
        ebegin "Stopping ${name}"
        start-stop-daemon --quiet --stop --exec "${command}" --pidfile "${pidfile}"
        eend $?
    }
    

    Note

    Ensure the script is executable:

    doas chmod a+x /etc/init.d/ytlocal
    
  2. Create the executable script /usr/sbin/ytlocal:

    #!/usr/bin/env bash
    
    # Change the working directory according to your installation path
    # Example: if installed in /usr/local/ytlocal, use:
    cd /home/your-path/ytlocal/   # <-- MODIFY TO YOUR PATH
    source venv/bin/activate
    python server.py > /dev/null 2>&1 &
    echo $! > /var/run/ytlocal.pid
    

    Warning

    Run this script only as root or via doas, as it writes to /var/run and uses network privileges.

    Tip

    To store the PID in a different location, adjust the pidfile variable in the service script.

    Important

    Verify that the virtual environment (venv) is correctly set up and that python points to the appropriate version.

    Caution

    Do not stop the process manually; use OpenRC commands (rc-service ytlocal stop) to avoid race conditions.

    Note

    When run with administrative privileges, the configuration is saved in /root/.yt-local, which is rootonly.

Service Management

  • Status: doas rc-service ytlocal status
  • Start: doas rc-service ytlocal start
  • Restart: doas rc-service ytlocal restart
  • Stop: doas rc-service ytlocal stop
  • Enable at boot: doas rc-update add ytlocal default
  • Disable: doas rc-update del ytlocal

PostInstallation Verification

  • Confirm the process is running: doas rc-service ytlocal status
  • Inspect logs for issues: doas tail -f /var/log/ytlocal.log (if logging is configured).

Troubleshooting Common Issues

  • Service fails to start: verify script permissions, correct command= path, and that the virtualenv exists.
  • Port conflict: adjust the servers port configuration before launching.
  • Import errors: ensure all dependencies are installed in the virtual environment.

[!IMPORTANT] Keep the service script updated when modifying startup logic or adding new dependencies.