Diffrence entre commande en konsole et script.
Résolu/Fermé
thierryR51
Messages postés
139
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
22 juin 2021
-
21 avril 2017 à 14:50
thierryR51 Messages postés 139 Date d'inscription dimanche 5 juillet 2015 Statut Membre Dernière intervention 22 juin 2021 - 21 avril 2017 à 21:29
thierryR51 Messages postés 139 Date d'inscription dimanche 5 juillet 2015 Statut Membre Dernière intervention 22 juin 2021 - 21 avril 2017 à 21:29
A voir également:
- Diffrence entre commande en konsole et script.
- Invite de commande - Guide
- Script vidéo youtube - Guide
- Commande terminal mac - Guide
- Commande dism - Guide
- Diskpart commande - Guide
8 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
21 avril 2017 à 15:06
21 avril 2017 à 15:06
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
thierryR51
Messages postés
139
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
22 juin 2021
8
21 avril 2017 à 19:08
21 avril 2017 à 19:08
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
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
21 avril 2017 à 19:24
21 avril 2017 à 19:24
auto= ps -ef | grep x11vnc | grep -v grep | awk '{ print $1 }'
Pas étonnant que ça ne marche pas ;-((
auto=$(ps -ef | grep x11vnc | grep -v grep | awk '{ print $1 }')
Mais :
auto=$(pgrep x11vnc)devrait être mieux ;-))
thierryR51
Messages postés
139
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
22 juin 2021
8
21 avril 2017 à 19:34
21 avril 2017 à 19:34
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 ?
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
21 avril 2017 à 19:39
21 avril 2017 à 19:39
Il semblerait que le mot "start" soit spécial ?Ben c'est surtout que ce n'est pas une commande, mais une option (de la commande) qu'on passe soit à
servicesoit à
systemctl.
Sur quel système es-tu ? Debian ou Mageia ?
thierryR51
Messages postés
139
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
22 juin 2021
8
21 avril 2017 à 19:41
21 avril 2017 à 19:41
Là je suis sous mageia donc systemctl
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
21 avril 2017 à 19:42
21 avril 2017 à 19:42
Donc la commande (en root) est :
systemctl start x11vnc-server
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
thierryR51
Messages postés
139
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
22 juin 2021
8
21 avril 2017 à 19:44
21 avril 2017 à 19:44
Ben pas tout à fait. Ce n'est pas un service:
x11vnc -display :0
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
21 avril 2017 à 19:47
21 avril 2017 à 19:47
Oups je n'avais pas regardé ton code (le 2nd) en détail ;-\
Pour déclarer une variable en shell bash, il ne faut pas d'espace autour du signe égale ;-(
Pour déclarer une variable en shell bash, il ne faut pas d'espace autour du signe égale ;-(
cde="start"
thierryR51
Messages postés
139
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
22 juin 2021
8
21 avril 2017 à 20:14
21 avril 2017 à 20:14
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.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
21 avril 2017 à 20:28
21 avril 2017 à 20:28
*) usage
esac
exit 0
Il manque les ";;" après usage ;-(
thierryR51
Messages postés
139
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
22 juin 2021
8
21 avril 2017 à 21:17
21 avril 2017 à 21:17
En console ça marche, mais si je clic directement sur le script en GUI le message de stop apparait systématiquement. Et si je recommance en console, tout va bien. Je ne peux pas cerner le problème..... Sans doute que le script ne s'exécutant pas dans la console bash, les variables déconnent ?
thierryR51
Messages postés
139
Date d'inscription
dimanche 5 juillet 2015
Statut
Membre
Dernière intervention
22 juin 2021
8
Modifié le 21 avril 2017 à 21:29
Modifié le 21 avril 2017 à 21:29
Ca y est j'ai trouvé:
J'ai remplacé pgrep par pidof
C'est super.
Chercheur en améliorations.
[url]
J'ai remplacé pgrep par pidof
C'est super.
Chercheur en améliorations.
[url]