OVH Cloud OVH Cloud

LoginHook

67 réponses
Avatar
Thomas
question :


pourquoi on est obligé de faire

sudo defaults write /Library/Preferences/com.apple.loginwindow LoginHook
/Users/thomas/Public/bin/demarrage

et que

defaults write Library/Preferences/com.apple.loginwindow LoginHook
/Users/thomas/Library/Scripts/startupscript

est sans effet ??




probleme :


ainsi configuré, j'ai


demarrage :

#!/bin/sh -
if [ ! $1 ]; then
echo "No user specified!"
exit 1
fi
su $1 -c 'cd && Library/Scripts/startupscript &'
exit 0


et
startupscript :

#!/bin/sh -
ping -i 60 192.168.1.0 &
whoami>zzzzzz
open -a ichat



j'ai bien mon fichier zzzzzz ainsi que ichat qui s'est ouvert,

mais pas de trace du ping dans le top !

pourtant, si je tape cette ligne dans le terminal, le resultat est
exactement celui attendu

savez vous pourquoi ??

--
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"

10 réponses

1 2 3 4 5
Avatar
Patrick Stadelmann
In article <1gjuujs.4kzbww7a12jpN%,
(Nicolas MICHEL) wrote:

De façon plus explicative, qu'on me corrige si je me vautre, le
loginhook est un script shell lancé par le shell de login, c'est à dire
par le papa du login. Or le papa du login est Mr root.


Oui.

Dans ce cas, mais qu'on me corrige si je me vautre encore vu que j'ai
pas testé, un StartupItems dans ~/Library/StartupItems doit être
possible,


Non, ce dossier n'est pas utilisé par le systèmem, simplement parce que
les StartupItems sont exécutés pendant le boot. Seuls les dossier
/System/Library/StartupItems et /Library/StartupItems sont utilisés.

A ne pas confondre avec les "Startup Items" de l'utilisateur que l'on
paramètres dans les préfs système.

Voir : <http://developer.apple.com/documentation/MacOSX/Conceptual/
BPSystemStartup/Tasks/CreatingStartupItems.html>

tout comme un shell de login spécifique dans netinfo/users,


Tu veux dire un script de login ? Le problème c'est qu'il sera aussi
exécuté en cas de connexion distante où quand l'utilisateur ouvre une
nouvelle fenêtre Terminal (avec les réglages par défaut en tout cas).

tout comme une variable d'environnement d'un shell standard. Non ?


Ca ne remplace pas un script, sauf si le but du script est de créer des
variables d'environnement !

Le plus simple pour exécuter un script shell sans ouvrir le Terminal est
de passer par AppleScript et "do shell script".

Patrick
--
Patrick Stadelmann

Avatar
nospam
Patrick Stadelmann wrote:

C'est le but du LoginHook


euh... s'cusez ma question bête, cékoidon LoginHook ?


--
Jacques, capitaine crochet

Avatar
Patrick Stadelmann
In article <1gjvzcb.1dzuiu8cv8ao0N%,
(Jacques Foucry) wrote:

Patrick Stadelmann wrote:

C'est le but du LoginHook


euh... s'cusez ma question bête, cékoidon LoginHook ?


Voir <http://developer.apple.com/documentation/MacOSX/Conceptual/
BPSystemStartup/Tasks/CustomLogin.html>

Patrick
--
Patrick Stadelmann


Avatar
jeromelebel
Thomas wrote:

pourquoi on est obligé de faire

sudo defaults write /Library/Preferences/com.apple.loginwindow LoginHook
/Users/thomas/Public/bin/demarrage

et que

defaults write Library/Preferences/com.apple.loginwindow LoginHook
/Users/thomas/Library/Scripts/startupscript

est sans effet ??


Parce que c'est une option qui doit etre utiliser uniquement par un
administrateur. C'est une fonction qui peut être dangereux, donc il faut
une certaine sécurité ! (pense à un script qui fasse un shutdown ou un
logout, ca fouterais un peu le bordel...)

pourtant, si je tape cette ligne dans le terminal, le resultat est
exactement celui attendu

savez vous pourquoi ??


Je pense que tout les process fils de ton script sont tués à la fin de
la vie de ton script.

Avatar
DINH Viêt Hoà

demarrage :

#!/bin/sh -
if [ ! $1 ]; then
echo "No user specified!"
exit 1
fi
su $1 -c 'cd && Library/Scripts/startupscript &'
exit 0

et
startupscript :

#!/bin/sh -
ping -i 60 192.168.1.0 &
whoami>zzzzzz
open -a ichat

mais pas de trace du ping dans le top !


ping va prendre une charge processeur proche de zéro,
donc pour le faire apparaître parmis les premier, il va falloir
faire un effort.

essaie plutôt :
ps -U root | grep ping

--
DINH V. Hoa,

"Ma tuxitude me beastifie" -- sunZ

Avatar
FiLH
Thomas writes:

question :


pourquoi on est obligé de faire

sudo defaults write /Library/Preferences/com.apple.loginwindow LoginHook
/Users/thomas/Public/bin/demarrage

et que

defaults write Library/Preferences/com.apple.loginwindow LoginHook
/Users/thomas/Library/Scripts/startupscript

est sans effet ??




probleme :


ainsi configuré, j'ai


demarrage :




et
startupscript :

#!/bin/sh -
ping -i 60 192.168.1.0 &
whoami>zzzzzz
open -a ichat



j'ai bien mon fichier zzzzzz ainsi que ichat qui s'est ouvert,

mais pas de trace du ping dans le top !

pourtant, si je tape cette ligne dans le terminal, le resultat est
exactement celui attendu

savez vous pourquoi ??


Parce ça passe trop vite le ping.

Pour tracer ton truc le mieux est de faire

#!/bin/sh
exec 2>/tmp/monlog$$
set -x

ping......

etc.

Le exec 2>/tmp/monlog va faire que l'exécution redirige la sortie
standard erreur sur le fichier /tmp/molog21345 avec 21345 numero du
processus shell qui execute ton script (ça fait que en cas de
lancement simultanné t'as plusieurs fichiers de log).

set -x active le mode debug de sh

FiLH

--
FiLH photography. A taste of freedom in a conventional world.
Web: http://www.filh.org e-mail
FAQ fr.rec.photo : http://frp.parisv.com/
Sitafoto la photo a Bordeaux : http://sitafoto.free.fr/

Avatar
Nicolas.MICHEL
FiLH wrote:

Thomas writes:

pourtant, si je tape cette ligne dans le terminal, le resultat est
exactement celui attendu

savez vous pourquoi ??


Parce ça passe trop vite le ping.

Pour tracer ton truc le mieux est de faire
[snip]


si j'ai suivi, le but de Thomas étant juste de voir si le script est
exécuté, autant faire un
touch ~/qq
plutôt qu'un ping, comme ça après tu vois si ~/qq existe, pas besoins de
tracer quoi que ce soit.
Tu vois aussi où est le $HOME :)

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


Avatar
Nicolas.MICHEL
Patrick Stadelmann wrote:

In article <1gjuujs.4kzbww7a12jpN%,
(Nicolas MICHEL) wrote:

De façon plus explicative, qu'on me corrige si je me vautre, le
loginhook est un script shell lancé par le shell de login, c'est à dire
par le papa du login. Or le papa du login est Mr root.


Oui.

Dans ce cas, mais qu'on me corrige si je me vautre encore vu que j'ai
pas testé, un StartupItems dans ~/Library/StartupItems doit être
possible,


Non, ce dossier n'est pas utilisé par le systèmem, simplement parce que
les StartupItems sont exécutés pendant le boot. Seuls les dossier
/System/Library/StartupItems et /Library/StartupItems sont utilisés.

A ne pas confondre avec les "Startup Items" de l'utilisateur que l'on
paramètres dans les préfs système.

Voir : <http://developer.apple.com/documentation/MacOSX/Conceptual/
BPSystemStartup/Tasks/CreatingStartupItems.html>


Ok, merci de la précision, j'ai pas pris le temps de relire la doc avant
de causer :)

tout comme un shell de login spécifique dans netinfo/users,


Tu veux dire un script de login ? Le problème c'est qu'il sera aussi
exécuté en cas de connexion distante où quand l'utilisateur ouvre une
nouvelle fenêtre Terminal (avec les réglages par défaut en tout cas).


Ok, c'est effectivement pas le but.
Tien, si j'ai un peu de temps de vais tester à quoi sert ce "shell" dans
netinfo/users. On doit bien pouvoir en faire quelquechose, non ?

tout comme une variable d'environnement d'un shell standard. Non ?


Ca ne remplace pas un script, sauf si le but du script est de créer des
variables d'environnement !


J'ai dit une connerie, même en spécifiant zsh comme shell dans
netinfo/users, le script de login spécifié dans les variables
d'environnement n'est pas exécuté au login de l'utilisateur, mais il le
sera à chaque fenêtre de terminal ouverte. C'est donc pas le bon truc.
J'avais pas le temps de tester avant de causer, merci donc de m'avoir
repris :)

Le plus simple pour exécuter un script shell sans ouvrir le Terminal est
de passer par AppleScript et "do shell script".


C'est le plus "vite et sale" alors :->

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


Avatar
laurent.pertois
Nicolas MICHEL wrote:

Tien, si j'ai un peu de temps de vais tester à quoi sert ce "shell" dans
netinfo/users. On doit bien pouvoir en faire quelquechose, non ?


Ben, à changer le shell par défaut de l'utilisateur, tout simplement,
comme dans un /etc/password d'un unix utilisant les fichiers texte de
config.

--
Politically Correct Unix - UTILITIES
The "touch" command has been removed from the standard distribution due
to its inappropriate use by high-level managers.

Avatar
Patrick Stadelmann
In article <1gjwn5r.5hgtc3ns1i2oN%,
(Nicolas MICHEL) wrote:

Tien, si j'ai un peu de temps de vais tester à quoi sert ce "shell" dans
netinfo/users. On doit bien pouvoir en faire quelquechose, non ?


Ca spécifie simplement quel est le shell par défaut pour l'utilisateur
(utilisé à l'ouverture du Terminal ou lors d'une connexion via ssh par
exemple). Les utilisateurs créés avant Panther ont tcsh par défaut, les
autres ont bash.

Patrick
--
Patrick Stadelmann

1 2 3 4 5