OVH Cloud OVH Cloud

script sh

15 réponses
Avatar
Thomas
bonjour :-)

j'ai besoin d'etre certain qu'un script va s'executer sans pb à tous les
coups, parce que sinon je ne peux plus demarrer mon ordi

voilà l'explication :-) :

<http://www.bombich.com/mactips/loginhooks.html>


est ce que des gens veullent bien me confirmer que mon script va
s'executer sans pb à tous les coups svp ? :-)


c'est executé sous root
il y a forcé ment un parametre, qui est le nom d'un utilisateur existant

le but est d'executer un script qui se trouve dans son dossier de
depart, en son nom au lieu de celui de root


#!/bin/sh

if [ ! $1 ]; then
echo "No user specified!"
exit 1
fi
su $1

cd /Users/$1
bin/startupscript &

### Always exit with 0 status
exit 0


ca va ? :-)


vu que c'est sous root, su ne demandera pas de mdp ?

ca renverra 0, de sorte qu'on puisse demarrer,
meme si bin/startupscript
- renvoie autre chose,
- n'est pas executable (parce qu'il manque le x ou parce que le fichier
contient n'importe quoi),
- ou n'existe pas ?

--
si je dors : wakeonlan -i tDeContes.hd.free.fr 00:03:93:AF:45:AE

"don't put your PC out of the window, put windows out of your PC"
"petit Free qui devient grand, gêne les requins blancs"

5 réponses

1 2
Avatar
Nicolas.MICHEL
Thomas wrote:

il me semble que ca, ca existait deja :
un fichier dans lequel on peut mettre des commandes qui sont executées
au demarrage de l'ordi
(il me semble qu'apache est dans ce fichier, d'ailleurs)

je voulais la meme chose, mais au login
(et executé au nom de celui qui se logge, pas au nom de root, bien sur)

apple a deja fait ca, mais seulement pour les elements double-clicables

vois tu ? :-)


non, t'y es pas.
Je parles bien de loginhook
Je dis juste que c'est pas la peine d'en mettre partout, un seul
loginhook suffit.

Sinon osx a diverses possibilités de scripts au boot :
Il y a rc
Il y a /Library/StartupItems
Il y a /System/Library/StartupItems (réservé)
Je suppose qu'il y a le shell de boot de l'utilisateur
Il y a les variables d'environnement du shell
et il y a les loginhook.

Dans ton cas c'est bien le loginhook que tu veux utiliser, mais c'est
pas la peine de le faire pointer sur un loginscript placé dans
/Users/toto/bin, amha. Tu peux faire un script pour tous le monde, non ?

--
S'il n'y a pas de solutions, c'est qu'il n'y a pas de problèmes
iChat/AIM : michelnicolas

Avatar
Stephane Chazelas
2004-09-08, 17:06(+02), Thomas:
[...]
exec su "$1" -c 'cd "/Users/$1" && bin/startupscript &' "$1" "$1"


au fait, pourquoi tu mets exec, alors que laurent n'en met pas ?


Juste une optimisation.

Sans le "exec", le shell (a moins qu'il fasse lui-meme
l'optimisation en realisant que c'est la derniere commande du
script) lance un nouveau processus. Comme c'est la derniere
commande du script, ce n'est pas necessaire, on peut reutiliser
le meme processus.

--
Stephane


Avatar
Laurent Wacrenier
Stephane Chazelas écrit:

Essaie de renommer le script en "-i" par exemple.

Ou faire un lien symbolique vers ce script.


Avatar
Laurent Wacrenier
Stephane Chazelas écrit:
au fait, pourquoi tu mets exec, alors que laurent n'en met pas ?


Juste une optimisation.

Sans le "exec", le shell (a moins qu'il fasse lui-meme
l'optimisation en realisant que c'est la derniere commande du
script) lance un nouveau processus. Comme c'est la derniere
commande du script, ce n'est pas necessaire, on peut reutiliser
le meme processus.


Ça peut être embetant si on veut faire quelque chose après le exec
dans une prochaine version.


Avatar
Stephane Chazelas
2004-09-8, 18:17(+00), Laurent Wacrenier:
Stephane Chazelas écrit:
au fait, pourquoi tu mets exec, alors que laurent n'en met pas ?


Juste une optimisation.

Sans le "exec", le shell (a moins qu'il fasse lui-meme
l'optimisation en realisant que c'est la derniere commande du
script) lance un nouveau processus. Comme c'est la derniere
commande du script, ce n'est pas necessaire, on peut reutiliser
le meme processus.


Ça peut être embetant si on veut faire quelque chose après le exec
dans une prochaine version.


Oui, ou si on a des "trap" definies dans le script. A noter
qu'avec les shells qui font l'optimisation eux-memes (comme
ksh93), les traps ne fonctionnent plus pour la derniere
commande.

--
Stephane



1 2