Diffrence entre commande en konsole et script.
Résolu
thierryR51
Messages postés
144
Statut
Membre
-
thierryR51 Messages postés 144 Statut Membre -
thierryR51 Messages postés 144 Statut Membre -
Bonjour,
Je cherche à arrêter ou démarrer un server VNC.
Pour savoir si celui ci est démarrer voir pour le killer il me faut son pid.
En console
Mais dans un script je n'ai pas le même résultat.
Pourquoi ?
Merci de toute aide.
Je cherche à arrêter ou démarrer un server VNC.
Pour savoir si celui ci est démarrer voir pour le killer il me faut son pid.
En console
ps -ef | grep x11vnc | grep -v grep | awk '{ print $2 }'
Mais dans un script je n'ai pas le même résultat.
Pourquoi ?
Merci de toute aide.
A voir également:
- Diffrence entre commande en konsole et script.
- Invite de commande - Guide
- Script vidéo youtube - Guide
- Commande terminal mac - Guide
- Diskpart commande - Guide
- Commande dism - Guide
8 réponses
Salut,
Faudrait voir ton script pour te répondre, parce que chez moi le résultat est le même ;-\
Faudrait voir ton script pour te répondre, parce que chez moi le résultat est le même ;-\
$ pgrep firefox
3910
$ echo -e "#! /bin/bash\npgrep firefox" > foo.sh && chmod +x foo.sh
$ cat foo.sh
#! /bin/bash
pgrep firefox
$ ./foo.sh
3910
Voila ce que j'ai fait
if [ -z $1 ]; #vrai si la chaine est vide
then
auto= ps -ef | grep x11vnc | grep -v grep | awk '{ print $1 }'
if [ -z $auto ]; #vrai si la chaine est vide
then
$cde= "start";
else
$cde= "stop";
fi
else
cde=$1;
fi
Effectivement ta commande est plus simple et apporte le même résultat. J'ai encore appris quelque chose. Voici ce que j'ai corrigé:
Et le résultat:
Il semblerait que le mot "start" soit spécial ?
if [ -z $1 ]; #vrai si la chaine est vide
then
auto= $(pgrep x11vnc)
if [ -z $auto ]; #vrai si la chaine est vide
18 then
19 cde= "start";
20 else
21 cde= "stop";
fi
else
cde=$1;
fi
Et le résultat:
+ '[' -z ']'
++ pgrep x11vnc
+ auto=
+ '[' -z ']'
+ cde=
+ start
x11vnc-server: ligne 19: start : commande introuvable
Il semblerait que le mot "start" soit spécial ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bizarre, ça fonctionne en console mais pas sur le X
Désolé, je te mets tout:
Dis moi ce que tu en penses. Merci.
Désolé, je te mets tout:
#!/bin/sh
set -x
# le nom du service
SERVICE_NAME=x11vnc
# le répertoire où se trouvent les exécutables du service
SERVICE_DIRECTORY=/usr/bin
# le nom du script de démarrage du service
SERVICE_STARTUP_SCRIPT="x11vnc -display :0"
# le nom du script d'arrêt du service
SERVICE_SHUTDOWN_SCRIPT="kill "
if [ -z $1 ]; #vrai si la chaine est vide
then
pid=$(pgrep x11vnc);
if [ -z $pid ]; #vrai si la chaine est vide
then
cde="start";
else
cde="stop";
fi
else
cde=$1;
fi
usage()
{
echo "-----------------------"
xmessage "
Usage: $0
(stop|start|restart)
"
echo "-----------------------"
}
service_start()
{
xmessage "Starting service '
${SERVICE_NAME}'... "
OWD=`pwd`
cd ${SERVICE_DIRECTORY} ./;
${SERVICE_STARTUP_SCRIPT}
cd $OWD
echo "Service '${SERVICE_NAME}' started successfully"
}
service_stop()
{
xmessage "Stopping service '
${SERVICE_NAME}'... "
OWD=`pwd`
cd ${SERVICE_DIRECTORY} ./
${SERVICE_SHUTDOWN_SCRIPT}' '$auto
cd $OWD
echo "Service '${SERVICE_NAME}' stopped"
}
case $cde in
stop)
service_stop
;;
start)
service_start
;;
restart)
service_stop
service_start
;;
- ) usageesacexit 0
Dis moi ce que tu en penses. Merci.