J'ai un processus que j'ai besoin d'exécuter au démarrage. C'est quelque chose qui doit continuer à fonctionner pendant tout le temps que la machine est allumée. A partir de maintenant, je suis juste en train de taper ce qui suit dans tout ce que je lance bash sur mon serveur.
command -f argument & disown
Je sais que je dois créer un script d'initialisation, mais je ne savais pas comment. Après quelques recherches, il semble qu'Ubuntu utilise systemd (son nom commence par Upstart, ils ne sont pas le même droit?) Que son système init. Mais tous les guides que j'ai trouvés en ligne me disent de placer mon exécutable dans /etc/init
ou /etc/init.d
. Init est censé être un système init complètement différent.
Est-ce que quelqu'un peut me diriger dans la bonne direction? Un exemple de script systemd ou même un guide en ligne serait d'une grande aide.
Vous avez besoin de deux fichiers:
Votre fichier de script:
command.sh
Le fichier .service
doit être placé dans /etc/systemd/system
et recevoir l'autorisation de 644
avec chmod 664 command.service
:
command.service
Le contenu le plus simple de command.service
serait:
[Unit]
Description=Some service description
[Service]
ExecStart=/bin/bash -c "/path/to/command.sh -f argument & disown"
[Install]
WantedBy=multi-user.target
Maintenant, pour le lancer au démarrage, nous utilisons le contrôleur systemd
systemctl
:
Sudo systemctl enable command
# or
Sudo systemctl enable command.service
Notez que de nombreuses autres options sont disponibles pour les différentes sections, voir ici , et assurez-vous que votre command.sh
est exécutable avec chmod +x command.sh