Utilisez systemd il inclut déjà la prise en charge des sessions utilisateur, en fait vous devriez déjà en dépendre (involontairement).
Créer le répertoire des services
mkdir -p $HOME/.local/share/systemd/user
Créez et modifiez un fichier de service (vim, gedit, geany - tout ce que vous voulez)
vim $HOME/.local/share/systemd/user/my.service
Il devrait à peu près ressembler à ceci, s'il s'agit d'un service permanent.
[Unit]
Description=My very own Service
[Service]
Type=simple
TimeoutStartSec=0
ExecStart=/path/to/start/script arguments
[Install]
WantedBy=default.target
Mais il semble que vous souhaitiez plutôt le déclencher une fois, puis être bon avec, alors utilisez plutôt une configuration unique comme celle-ci :
[Service]
Type=oneshot
RemainAfterExit=true
StandardOutput=journal
ExecStart=/path/to/start/script arguments
ExecStop=/path/to/stop/script arguments
[Install]
WantedBy=default.target
Cela suppose bien sûr que votre script soit exécutable, c'est-à-dire :
chmod a+x /path/to/start/script
chmod a+x /path/to/stop/script
Sinon, vous devrez ajouter le chemin d'accès à l'interpréteur respectif :
ExecStart=/bin/bash /path/to/start/script arguments
Maintenant, rechargez systemd (et reconnectez-vous pour tester)
systemctl --user enable my.service # enables the service
systemctl --user # should display your new unit in the list
journalctl --user should show the log
Si vous avez besoin de plus d'informations référez-vous à l'Arch-Wiki par exemple.
Vous pouvez étendre le comportement (si vous êtes root) à d'autres utilisateurs en définissant le service globalement. Pour ce faire, vous devez créer le fichier de service dans /usr/share/systemd/user/ pas dans $HOME/.local/share/systemd/user .