{{tag>Bash Script Wrapper}} Doublon avec [[scriptinitsysvroot]] # Script init Wrapper Lancement du serveur BCM sous un compte utilisateur (non-root) sous Debian. ### 1) Création d’un nouvel utilisateur dédie au serveur BCM. Dans notre exemple il s’agit de « bcm » **TODO** Commande de création utilisateur système ### 2) Création du script /etc/init.d/BMC `/etc/init.d/BMC` ~~~bash #! /bin/bash # chkconfig: 35 85 15 # description: Startup script for BMC Client Management agent ### BEGIN INIT INFO # Provides: BMC # Required-Start: $network $local_fs $remote_fs $time $syslog # Required-Stop: $network $local_fs $remote_fs $time $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Wrapper pour lancer les scripts sysVinit avec un compte utilisateur (non root) # Description: Wrapper pour lancer les scripts sysVinit avec un compte utilisateur (non root) ### END INIT INFO BCM_USER=bcm BCM_INITSCRIPT=/etc/init.d/BMCClientManagementAgent su - $BCM_USER -c "$BCM_INITSCRIPT" "$@" ~~~ Note : Les commentaires du scripts sont nécessaire. Voir * [[https://wiki.debian.org/LSBInitScripts]] * [[http://linux.die.net/man/8/chkconfig]] ### 3) Gestion des services Placer les droits d’exec : ~~~bash chmod +x /etc/init.d/BMC ~~~ Désactivation du démarrage de l’ancien script. ~~~bash update-rc.d BMCClientManagementAgent remove ~~~ Activation du nouveau script ~~~bash update-rc.d BMC defaults ~~~ On vérifie : ~~~bash find /etc/rc* -iname "*bmc*" ~~~ ### 4) Fin Arrêt process lancé en root /etc/init.d/BMCClientManagementAgent stop Ici l’utilisateur « bcm » devient le nouveau propriétaires des fichiers ~~~bash chown bcm: /opt/bcm/ -R ~~~ On démarre BCM ~~~bash /etc/init.d/BCM start ~~~ ### En cas de Pb Refaire point 3 et 4. Idem si application patch. NB : il convient dans la supervision de s’assurer que le process tourne sous le bon compte. Exemple : ~~~bash pgrep -u bcm mtxagent && echo OK || echo NOK ~~~ -----------