Meilleure façon d'exécuter un processus autonome sur une machine Linux

0

J'ai une machine Linux que je veux laisser sans surveillance. J'ai un programme sur cette machine que je veux démarrer automatiquement lorsque la machine démarre et tourne sans surveillance.

Quel est le meilleur moyen de configurer ce programme pour qu'il démarre au démarrage? Je n'ai aucune sorte d'interface graphique installée, donc je ne peux pas utiliser les propriétés de gnome-session ou quoi que ce soit le long de ce type de ligne. Dois-je configurer une connexion automatique à un utilisateur autonome spécial? Si le programme peut s'exécuter sans s'être préalablement connecté en tant qu'utilisateur, dans quelle mémoire peut-il écrire et où peut-il stocker les fichiers texte dont il a besoin?

Froskoy
la source
2
il serait vraiment utile de mentionner la distribution que vous utilisez. En supposant que nous commencions cela avec un script init, il y a 3 systèmes différents utilisés aujourd'hui, et la réponse devra en tenir compte.
Journeyman Geek
@JourneymanGeek avez-vous un lien décrivant les différences entre les trois et par quelle distribution ils sont utilisés?
Baarn
désinvolte, non. init.d est le "vieux" système. Upstart et startd et les alternatives utilisées par Ubuntu et Fedora respectivement. Je pense que ce dernier peut exécuter des scripts init, mais il est très difficile de répondre sans le savoir.
Journeyman Geek
Pardon. Utilisation de Fedora.
Froskoy
@JourneymanGeek vous vouliez sûrement dire systemd? Dans ce cas, je vous conseillerais de regarder la page archwiki systemd ici wiki.archlinux.org/index.php/…
Rob

Réponses:

0

Pour systemd (qui est ce que fedora utilise), le archwiki fournit une solution comme celle-ci:

Créez un nouveau fichier dans / etc / systemd / system (par exemple, myscript.service) et ajoutez le contenu suivant:

[Unit]
Description=My script

[Service]
ExecStart=/usr/bin/my-script

[Install]
WantedBy=multi-user.target 

ensuite

# systemctl enable myscript.service

Cet exemple suppose que vous souhaitiez que votre script démarre lorsque le multi-utilisateur cible est lancé.

Rob
la source
Merci. Étant donné que ce processus n'est pas associé à un utilisateur, où peut-il écrire / lire des fichiers texte?
Froskoy
Il sera exécuté en tant que superutilisateur si je ne me trompe pas. Vous pouvez le faire fonctionner en tant qu'utilisateur en configurant correctement son identifiant, je pense. C'est quelque chose que vous devriez regarder comme je ne l'ai jamais fait.
Rob