export HOME=/ce/qui/convient
Citation
Basile STARYNKEVITCH
Ce n'est pas /etc/passwd qu'il faut changer, mais
l'un de tes scripts avec unexport
HOME=/ce/qui/convient
Dis moi quand même le nom de ta boite ou du
produit. J'éviterais d'en avoir besoin un jour
Tu me donnes toujours l'impression de ne pas
comprendre ce qui se passe sur tes machines. C'est
effrayant!
J'ai vraiment du mal à comprendre ceux qui
choisissent un métier où ils font du développement
et qui ne cherchent pas à comprendre comment ça
marche. A mon avis, ils se trompent de métier.
Faire (même un peu) du développement, c'est quand
même désirer "déshabiller la machine", autrement
dit une certaine quantité de pulsion
epistémophilique (càd de curiosité) est
indispensable.
En plus si tu n'as pas cette curiosité là,
j'imagine que ton boulot t'emmerdes beaucoup.
----
Basile STARYNKEVITCH où on trouve mon mél
N.B. N'hesitez pas à consulter aussi mes
contributions antérieures.
Citation
szambaux
voila j'ai remis toutes les variables d'environement, et tout fonctionne parfaitement: c'est bien mieux merci
oui c'est la ou on reconner un vrai développeur, des pistes pour ces pannes? des tuto qui montre comment prévenir?Citation
Basile STARYNKEVITCH
szambaux a écrit :voila j'ai remis toutes les
variables d'environement, et tout fonctionne
parfaitement: c'est bien mieux merci
Non, ça marchotte.
En cas d'incident, tes scripts semblent ne rien
prévoir. C'est là où il faut comprendre et
réfléchir (et faire des scripts professionnels),
et c'est difficile à tester : il n'est pas facile
de reproduire un problème comme une panne disque,
ou un disque plein.
----
Basile STARYNKEVITCH où on trouve mon mél
N.B. N'hesitez pas à consulter aussi mes
contributions antérieures.
#!/bin/sh case "$#" in 0 ) echo "aucun parametres recus \n" >> /var/log/shellflash.log exit 2 ;; 1 ) if pidof /usr/bin/flashplayer; then killall flashplayer sleep 0.2 if pidof /usr/bin/flashpalyer; then killall -9 flashplayer sleep 0.2 fi fi export 'HOME=/root' export 'LANG=fr_FR.UTF-8' export 'USER=root' export 'TERM=linux' export 'SHELL=/bin/bash' export 'LOGNAME=root' export 'PWD=/root' DISPLAY=:0.0 flashplayer $1 & # focntionement ok exit 0 ;; 2 ) echo "nombre de parametres trop grand" >> /var/log/shellflash.log exit 1 ;; esac
#!/bin/sh # Initialisation des variables : . /etc/profile . ~/.bash_profile LOG=/dev/null DISPLAY=:0.0 TIMESTAMP=$(date '+%Y%m%d%H%M') # Fonction d'aide usage() { echo "Usage : $0 <stop|start|status|startlog>" exit 1 } [ $# -eq 0 ] && usage stop() { if [ -e /var/run/flashplayer.pid ] ; then PID=$(cat /var/run/flashplayer.pid) kill -TERM # Si flashplayer a des difficultés à se fermer, tu peux rajouter le sleep et kill -KILL $PID rm -f /var/run/flashplayer.pid echo "flashplayer stoppé" exit 0 else echo "flashplayer n'est pas en cours d'exécution" exit 1 fi } start() { if [ -e /var/run/flashplayer.pid ] ; then echo "flashplayer est déjà en cours d'exécution ($(cat /var/run/flashplayer.pid))" exit 1 fi export DISPLAY nohup flashplayer $1 >>$LOG 2>&1 & PID=$! echo $PID > /var/run/flashplayer.pid echo "flashplayer lancé" exit 1 } case $1 in "stop") stop ;; "start") start ;; "restart") stop start ;; "status") echo "Pid=$(cat /var/run/flashplayer.pid) exit 0 ;; "startlog") LOG=/var/log/flashplayer.log exec 1>>$LOG exec 2>&1 echo -n $TIMESTAMP start ;; *) usage ;; esac
Citation
Basile STARYNKEVITCH
en shell, le crochet est la "fonction" test qui
est documentée
----
Basile STARYNKEVITCH où on trouve mon mél
N.B. N'hesitez pas à consulter aussi mes
contributions antérieures.
Citation
oudoubah
Cela revient au même que de faire if [ ... ] ;
then commande ; fi
Pour le comprendre, il faut connaitre le mécanisme
d'évaluation du ET logique :
si la première expression est vraie, alors je
teste la seconde. Ici, si le résultat du test est
vrai, alors je teste la seconde, c'est à dire si
la commande après le && renvoie VRAI.
Ce que je ne fais pas (car je ne m'en sers pas),
c'est de connaitre la valeur de ce ET logique.
Si la première expression est fausse, alors cela
ne sers à rien d'évaluer la seconde partie du ET.
L'implantation du ET fait qu'il renvoit la valeur
FAUX sans tester la seconde partie (qu'elle soit
vraie ou fausse, cela ne changera pas le
résultat).
L'avantage de cette écriture, c'est qu'elle allège
le code. Une petite ligne remplace un if then fi
Concernant ta seconde question, il faut savoir que
par défaut un programme a une entrée standard, une
sortie standard, et une sortie d'erreur. En shell,
cela correspond aux descripteur 0, 1 et 2.
>>$LOG est équivalent à 1>>$LOG
2>&1 renvoit la sortie d'erreur (2) dans la
sortie standard (1). Pourquoi mettre un & ?
Parce qu'il faut différencier le fichier qui
s'appelle 1 et la sortie standard.
Cela peut être bien d'avoir sous la main une bonne
documentation du shell. Celle que je garde
toujours sous le coude est celle de Sve@r
(http://fr.lang.free.fr/).
> A l'heure actuelle, il s'est formé une sorte
"d'aristocratie" de Linux qui essaye de maintenir
ses connaissances pour elles et d'en priver les
autres en innondant chaque débutant de
documentations
-+- EF in Guide du linuxien pervers : "Comprenne
qui pourra..." -+-