I’m currently trying to set up a self-hosted SearX search engine on Ubuntu 22.04. In order for the search engine to work, I have to manually run the following commands on startup:

#! /usr/bin/bash

sudo -H -u searx -i

cd /usr/local/searx/searx-src

export SEARX_SETTINGS_PATH="/etc/searx/settings.yml"

python searx/webapp.py

This is kind of annoying to have to do, so I put the script into /etc/rc.local and went through all the steps to enable all that. Now my rc.local file looks like:

#!/bin/sh -e

#! /usr/bin/bash

sudo -H -u searx -i

cd /usr/local/searx/searx-src

export SEARX_SETTINGS_PATH="/etc/searx/settings.yml"

python searx/webapp.py

exit 0

However, the code fails, and upon checking “sudo systemctl status rc-local.service” I get the following (abbreviated) error message:

 Loaded: loaded (/etc/systemd/system/rc-local.service; enabled; vendor preset: enabled)
Drop-In: /usr/lib/systemd/system/rc-local.service.d
         └─debian.conf
 Active: failed (Result: exit-code) since Thu 2023-10-05; 55s ago
Process: 8468 ExecStart=/etc/rc.local start (code=exited, status=127)
    CPU: 12ms

systemd[1]: Starting /etc/rc.local Compatibility… sudo[8469]: root : PWD=/usr/local/searx ; USER=searx ; COMMAND=/bin/bash sudo[8469]: pam_unix(sudo-i:session): session opened for user searx(uid=999) by (uid=0) sudo[8469]: pam_unix(sudo-i:session): session closed for user searx rc.local[8468]: /etc/rc.local: 6: python: not found systemd[1]: rc-local.service: Control process exited, code=exited, status=127/n/a systemd[1]: rc-local.service: Failed with result ‘exit-code’. systemd[1]: Failed to start /etc/rc.local Compatibility.

I understand that an Exit Code 127 means that the code is failing because it can’t access the following directory:

cd /usr/local/searx/searx-src

But I honestly have no idea how to fix my code to make this possible. Please lmk if you have any suggestions