Quelles sont les variables environnement sont disponibles lors du démarrage du script en utilisant processus de démarrage init.d?

StackOverflow https://stackoverflow.com/questions/2598815

  •  25-09-2019
  •  | 
  •  

Question

Mon problème est comme ça (OS Sun Solaris ):

  1. Au moment du démarrage, je veux lancer un processus à l'aide d'un script spécifique. Je fais cela en mettant ce script dans /etc/init.d (et d'autres règles suivantes K et S).

  2. Le programme qui sera appelé par le script est situé à l'emplacement de $HOME/xxx/yyy.

  3. J'utilise 'su - {myuser} -c "{full path of the program}"' pour exécuter le script comme {myuser}.

  4. Je ne veux pas hardcode la valeur de $ HOME dans le script, mais je veux utiliser la variable d'environnement $HOME seulement. Comment puis-je obtenir cette variable d'environnement $HOME dans le script shell? Aussi ce que les autres variables seront disponibles?

Était-ce utile?

La solution

Pour obtenir la variable d'accueil de tout utilisateur, essayez ce hack:

HOME=`sudo -u myuser -s "cd ~; pwd"`

Autres conseils

Il suffit de mettre

env > env.txt

dans le script. Après avoir exécuté votre script le fichier env.txt contient toutes les variables d'environnement.

2) Quels $ HOME de l'utilisateur? $ HOME de racine ou de $ HOME myuser

Si c'est la maison de myuser, il suffit d'utiliser $ HOME dans le script de l'enfant, et ne l'utilisez pas dans le script init.d. Ce montant sera fixé pour vous par le processus de shell que vous commencez. Lorsque vous ne su - {myuser} vous instruisez su exécuter le shell de connexion de myuser (tel que défini dans / etc / passwd). Le shell de connexion définira les variables d'environnement par défaut en fonction de ce shell est. Consultez la documentation de votre shell pour plus de détails. Sur Solaris ce qui est probablement ksh shell bourne.

3) Est-ce su - myuser -c /usr/bin/env. Cela imprimera les variables d'environnement qui seront définies dans le script de l'enfant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top