Script de démarrages multiples sous différents usr

Bonjour à tous,

j’ai un problème que je n’arrive pas à résoudre:
je voudrais faire un script qui permettrai au démarrage de lancer tout un tas de programmes sous différents utilisateurs.

Malheureusement il reste bloqué systématiquement par un vilain message:
“WARNING: Can’t change user id unless you are root.”

Qu’il n’affiche qu’en script bash, lorsque je l’écris à la main en terminal c’est OK.
Je suis à bout de réflexion, qui aurait une idée pour que cela fonctionne ?

Voici le script:
#!/bin/bash
echo “********** Lancement du BOOTSCRIPT”

USR1

echo "*** Demarrage des éléments CMD1:"
su -l usr1 -c ’

CMD1-1

/dir/cmd1-1 -c /config.xml
disown
echo "* demarrage 1-1, OK"
sleep 1

CMD1-2

/dir/cmd1-2 &
disown
echo "* demarrage 1-2 , OK"
sleep 2
’

USR2

echo ">> Demarrage CMD2:"
su -l usr2-c ’

CMD2-1

/dir/cmd2-1/app start
disown
echo "* demarrage 2-1, OK"
sleep 2

CMD2-2

/dir/cmd2-2/app
disown
echo "* demarrage 2-2, OK"
sleep 1
’
echo “********** Fin du BOOTSCRIPT”

Merci d’avance pour votre aide précieuse !

Bonjour,
Puisque tu veux démarrer des programmes par différents utilisateurs au moment du démarrage alors tu es exactement dans le cas de la création de service :

Si tu veux pouvoir exécuter ton script à n’importe quel moment, il te faudra utiliser l’utilitaire expect, avec comme inconvénient de devoir mettre en clair les password dans le contenu du script.
https://stackoverflow.com/questions/4780893/use-expect-in-bash-script-to-provide-password-to-ssh-command