-
-
Save ricferr/90583f608f0b0ae9c3cf6833be04ab85 to your computer and use it in GitHub Desktop.
[Unit] | |
Description=Some description | |
After=network.target | |
[Service] | |
Type=simple | |
User=user | |
WorkingDirectory=/home/user/somedir | |
Environment=PYTHONPATH=/home/user/somedir | |
ExecStart=/home/user/venv/bin/python script.py | |
Restart=on-failure | |
[Install] | |
WantedBy=multi-user.target |
ricferr
commented
Mar 28, 2020
via email
I use the below to run a python discord bot script with virtualenv
[Unit]
Description=Embed Bot
After=multi-user.target
[Service]
User=discord
Group=discord
Type=idle
WorkingDirectory=/opt/discord/embeds/
ExecStart=/opt/discord/embeds/bot-env/bin/python3 start.py
Restart=on-failure
[Install]
WantedBy=multi-user.target
start.py is the bot itself.
/opt/discord/embeds - root with the bot script
/opt/discord/embeds/bot-env - virtualenv
Thank you this helped me solve an issue I was having!
[Unit]
Description="run-script"
[Service]
User=root
Group=root
WorkingDirectory=/usr/src/python3.9-venv/
Environment=PATH=/usr/src/python3.9-venv/bin
ExecStart=/bin/sh -c 'cd /usr/src/python3.9-venv/ && source /usr/src/python3.9-venv/bin/activate && python3.9 /usr/src/python3.9-venv/welcomer.py'
Restart=on-failure
[Install]
WantedBy=multi-user.target
VIRTUAL_ENV=/home/path/to/venv
@shoguevara you claim that your snippet is tested and works, but this line is not valid syntax.
VIRTUAL_ENV=/home/path/to/venv
@shoguevara you claim that your snippet is tested and works, but this line is not valid syntax.
Worked by the time I've tested it. Moved on since then, I cant even recall what app I was wrapping that time.
Do not use VIRTUAL_ENV
var to specify the path, SystemD might complain, use PATH directly and also add /bin/
at the end of it, with your example it might be something like:
...
Environment=PATH=/home/path/to/venv/bin:$PATH
...
@andreabenini I don't do it, I just pointed out that it's not valid syntax (Environment=
is missing). In my case, systemd didn't complain about that variable, but using it changed nothing. PATH was also not a problem.
Systemd won't expand variables mentioned in Environment=