Dans ce tutoriel, nous comment lancer un script Ruby comme service Linux sous Ubuntu.
Parfois, vous créez un script, puis vous souhaitez que les scripts soient contrôlés par systemd ou, dans certains cas, vous souhaitez que les scripts soient redémarrés par eux-mêmes lorsqu’ils sont tués pour une raison quelconque.
Dans de tels cas, systemd sous Linux aide à configurer les services qui peuvent être gérés.
Lire aussi: Comment corriger l’erreur Busybox Initramfs sur Ubuntu
Dans un de mes projets récent j’étais confronté à ce problème, c’est à dire lancer une application Ruby au démarrage du système.
Par le passé upstart était disponible dans Ubuntu pour faire ces genres d’opération, mais les nouvelles versions de ubuntu sont passés de upstart à systemd.
Donc cela nous permet de créer des services contrôler par systemd.
Cette méthode peut être appliquer à la plupart des langages de script pour lancer un script comme service Linux, mais il faut au préalable l’environnement d’exécution du langage de concerné.
Lancer un script Ruby comme service Linux
Pour ce faire, suivez les étapes suivantes.
1- Lancer la commande suivante dans votre terminal :
cd /etc/systemd/system
2-Créez un fichier nommé
votre-service.service
et incluez les éléments suivants :
[Unit] Description=<description about this service> [Service] User=<user e.g. root> WorkingDirectory=<directory_of_script e.g. /root> ExecStart=<script which needs to be executed> Restart=always [Install] WantedBy=multi-user.target
Pour les projets spécifiques à Python qui incluent un environnement
virtuel :
[Unit] Description=<project description> [Service] User=<user e.g. root> WorkingDirectory=<path to your project directory containing your python script> ExecStart=/home/user/.virtualenv/bin/python main.py Restart=always # replace /home/user/.virtualenv/bin/python with your virtualenv and main.py with your script [Install] WantedBy=multi-user.target
Ou
[Unit] Description=<project description> [Service] User=<user e.g. root> WorkingDirectory=<path to your project directory> ExecStart=/bin/bash -c 'cd /home/ubuntu/project/ && source venv/bin/activate && python test.py' [Install] WantedBy=multi-user.target
3- Rechargez les fichiers de service pour inclure le nouveau service.
sudo systemctl daemon-reload
4- Démarrez votre service
sudo systemctl start your-service.service
5- Pour vérifier l'état de votre service
sudo systemctl status example.service
6- Pour activer votre service à chaque redémarrage
sudo systemctl enable example.service
7- Pour désactiver votre service à chaque redémarrage
sudo systemctl disable example.service
Ici prend fin, le tutoriel sur comment lancer un script Ruby comme
service Linux sous ubuntu.
Leave a Comment