Je crois que cela devrait être simple mais je ne peux pas le faire fonctionner correctement.
Ce sont les commandes que je peux exécuter en ligne de commande:
cd /home/debian/ap
# Start a virtualenv
source venv-ap/bin/activate
# This needs to happen inside the virtualenv and takes ~20 seconds
crossbar start
# Outside the virtualenv, perhaps in a different command line window
python3 /home/debian/myscript.py
Ces commandes doivent être exécutées dans cet ordre. En raison de virtualenv, du non-exécutable pour crossbar et du script python séparé par la suite, je n'ai pas été en mesure de trouver la meilleure façon de faire fonctionner cela. Mon travail en cours:
[Unit]
Description=Start CB
After=network.target
[Service]
Type=simple
User=debian
ExecStartPre=source /home/debian/ap/venv-ap/bin/activate
ExecStart=cd /home/debian/ap/ && crossbar start
Restart=always
[Install]
WantedBy=multi-user.target