Comment installer une application Linux dans les cas où les scripts de démarrage en parallèle sont activés ou désactivés?

2

Nous développons une application Linux pour travailler sur différentes distributions RedHat / SUSE. Cette application (à savoir, le démon) devrait être automatiquement lancée au démarrage. Nous plaçons donc notre script de démarrage dans le répertoire /etc/init.d/ et créons des liens symboliques dans des répertoires de niveaux d'exécution (../rc.d/rc5.d/, par exemple). exemple). Si un utilisateur supprime notre application, notre script de désinstallation supprime tous nos éléments, y compris les liens symboliques. Cela fonctionne bien si le système d'exploitation ne fournit pas de script parallèle en cours d'exécution. Si l'exécution en parallèle est activée, nous avons besoin d'une autre solution. Par exemple, dans SLES 10, nous avons dans / etc / sysconfig / boot:

# Run all scripts or rather start/stop all services
# which are independent from each other in parallel.

RUN_PARALLEL="yes"

Autant que nous comprenions, nous devons enregistrer notre script avec l'utilitaire insserv. Dans ce cas, le système analyse un en-tête de script et crée / supprime les liens symboliques par lui-même. Si c’est vrai, comment organiser l’installation / la désinstallation de notre application de manière à ce qu’un script de démarrage parallèle et séquentiel soit exécuté? Il semble que nous devrions nous comporter différemment lorsque le fonctionnement en parallèle est désactivé ou activé. Dans le premier cas, nous devrions nous soucier de liens symboliques nous-mêmes. Dans le second cas, nous devrions le déléguer à insserv. Est-ce la bonne approche? Si c'est le cas, devrions-nous analyser si l'exécution en parallèle est activée en vérifiant / etc / sysconfig / boot? Cela semble peu fiable car, dans différentes distributions Linux, il pourrait s'agir d'un emplacement et d'un paramètre différents.

Quelle est la meilleure pratique pour l’installation / la désinstallation d’une application Linux couvrant à la fois le démarrage parallèle et séquentiel du système?

Merci,

utilisateur31462
la source

Réponses:

3

Laissez insserv créer les liens symboliques pour vous. lorsque vous utilisez insserv, vous pouvez également ajouter des dépendances à votre en-tête de script afin qu'insserv sache quand démarrer et arrêter votre script dans un niveau d'exécution spécial. cela est nécessaire pour une exécution séquentielle et parallèle. essayez d'être compatible avec lsb. voici un court exemple:

# Following lines are in conformance with LSB 1.2 spec
### BEGIN INIT INFO
# Provides:            your shoort app name here
# Required-Start:      what should start before your app, e.g. network
# Required-Stop:       what should stop before your app stops
# Default-Start:       2 3 4 5
# Default-Stop:        0 1 6
# Description:         longer about 
### END INIT INFO
Christian
la source
1
Oui, c'est clair, mais dois-je analyser si run_parallel est activé? Ou devrais-je utiliser insserv dans les deux cas (exécution parallèle et séquentielle)?
user31462
IIRC, rpm exécute insserv pour vous lors de l’installation du paquet.
Tobu
utilisez insserv pour les deux modes.
Christian