Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

variable TERM dans script php

5 réponses
Avatar
Hugolino
Bonsoir,

[X-post: fcou,fcolc fu2:fcou]

J'ai un script PHP qui fonctionne bien sur mon portable Ubuntu 6.06
(sur laquelle est installé php5) mais pas sur la sarge qui tourne sur ma
HP PA/risc (avec php4).

J'ai inclus les deux lignes suivantes dans mon script:
8<-----------8<---------8<----------8<----------8<----------8<----------8<
system("set >stdout-set.txt 2>stderr-set.txt");
system("/usr/bin/top -bn1 >stdout-top.txt 2>stderr-top.txt");
8<-----------8<---------8<----------8<----------8<----------8<----------8<

Sur la ubuntu, stderr-set.txt et stderr-top.txt sont vides et
std-set.txt contient:
8<-----------8<---------8<----------8<----------8<----------8<----------8<
BASH=/bin/sh
BASH_ARGC=()
BASH_ARGV=()
BASH_EXECUTION_STRING='set >stdout-set.txt 2>stderr-set.txt'
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="3" [1]="1" [2]="17" [3]="1" [4]="release"
[5]="i486-pc-linux-gnu")
BASH_VERSION='3.1.17(1)-release'
DIRSTACK=()
EUID=33
GROUPS=()
HOSTNAME=SargePack2
HOSTTYPE=i486
IFS='
'
LANG=C
MACHTYPE=i486-pc-linux-gnu
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/local/bin:/usr/bin:/bin
POSIXLY_CORRECT=y
PPID=5413
PS4='+ '
PWD=/var/www
SHELL=/bin/sh
SHELLOPTS=braceexpand:hashall:interactive-comments:posix
SHLVL=2
TERM=dumb
UID=33
_=/usr/sbin/apache2
8<-----------8<---------8<----------8<----------8<----------8<----------8<

et stdout-top.txt contient entre autre:
8<-----------8<---------8<----------8<----------8<----------8<----------8<
11696 www-data 15 0 2192 1036 752 R 2.0 0.2 0:00.02 top
11695 www-data 18 0 3088 1440 1000 S 0.0 0.3 0:00.00 sh
8<-----------8<---------8<----------8<----------8<----------8<----------8<

alors que sur la hppa/risc, le stdout-set.txt contient:
8<-----------8<---------8<----------8<----------8<----------8<----------8<
BASH=/bin/sh
BASH_VERSINFO=([0]="2" [1]="05b" [2]="0" [3]="1" [4]="release"
[5]="hppa-unknown-linux-gnu")
BASH_VERSION='2.05b.0(1)-release'
DIRSTACK=()
EUID=33
GROUPS=()
HOSTNAME=Talon
HOSTTYPE=hppa
IFS='
'
LANG=C
MACHTYPE=hppa-unknown-linux-gnu
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/local/bin:/usr/bin:/bin
POSIXLY_CORRECT=y
PPID=2923
PS4='+ '
PWD=/var/www
SHELL=/bin/sh
SHELLOPTS=braceexpand:hashall:interactive-comments:posix
SHLVL=2
TERM=dumb
UID=33
_=sh
8<-----------8<---------8<----------8<----------8<----------8<----------8<
(Donc TERM n'est pas unset puisqu'il contient dumb)
(et stderr-set.txt est vide)

Et le stderr-top.txt contient une seule ligne:
8<-----------8<---------8<----------8<----------8<----------8<----------8<
TERM environment variable not set.
8<-----------8<---------8<----------8<----------8<----------8<----------8<
(stdout-top est bien sur vide)

La question est donc: à quoi est due cette différence de comportement,
* version de php (et dans ce cas je suis HC) ?
* version de bash?
3.1.17 sur le portable/ubuntu
2.05b sur la hppa/sarge
* mauvais paramètre dans un fichier de conf (oui mais lequel ?)


Merci de votre attention


--
«Ca te derange ??? Je fait ce que je veux si ca te plait pas tu vas
ailleurs gros c,, Mis a part ca si quelqun voulait bien me repondre
ce serais sympa.»
TOTO in Guide du linuxien pervers : "Bien préparer sa repartie"

5 réponses

Avatar
lhabert
Hugolino :

TERM=dumb


set te donne les variables internes du shell. Il se peut que le shell se
soit définit tout seul un $TERM=dumb comme variable interne. Il faudrait
vérifier en utilisant env au lieu de set. Mais il se peut aussi que le
message de top soit confusant : genre, il ralerait en fait parce qu'il n'y a
pas d'entrée dumb dans la terminfo, ou encore parce qu'il n'est pas lancé
dans un terminal.

Avatar
Olivier Miakinen

TERM=dumb


set te donne les variables internes du shell. Il se peut que le shell se
soit définit tout seul un $TERM=dumb comme variable interne. Il faudrait
vérifier en utilisant env au lieu de set. Mais il se peut aussi que le
message de top soit confusant : genre, il ralerait en fait parce qu'il n'y a
pas d'entrée dumb dans la terminfo, ou encore parce qu'il n'est pas lancé
dans un terminal.


Je précise un peu la question d'Hugolino qui avait publié initialement
dans fr.comp.lang.php. Il est normal qu'il n'y ait aucun terminal défini
puisque l'interpréteur PHP est lancé à partir du serveur Apache. En
revanche, Hugolino veut lancer la commande top en mode batch (paramètres
-bn1) : est-il vraiment impossible de lancer « top -bn1 » sans avoir de
terminal ? Question subsidiaire : est-il possible de choisir un TERM au
hasard parmi ceux définis dans terminfo, par exemple la console ?

Pour info, j'ai trouvé le man de top sur Linux :
http://www.die.net/doc/linux/man/man1/top.1.html
... mais pas sur HP.


Avatar
Hugolino
Le Mon, 16 Oct 2006 20:44:54 +0000 (UTC), Luc Habert a écrit:
Hugolino :

TERM=dumb


set te donne les variables internes du shell. Il se peut que le shell se
soit définit tout seul un $TERM=dumb comme variable interne. Il faudrait
vérifier en utilisant env au lieu de set.


Voici ce que env raconte:
8<-----------8<---------8<----------8<----------8<----------8<----------8<
PATH=/usr/local/bin:/usr/bin:/bin
_=/usr/bin/env
PWD=/var/www
LANG=C
SHLVL=2
8<-----------8<---------8<----------8<----------8<----------8<----------8<

J'avoue que ça me semble très laconique (pas de variable TERM définie)

Mais il se peut aussi que le message de top soit confusant : genre,
il ralerait en fait parce qu'il n'y a pas d'entrée dumb dans la
terminfo, ou encore parce qu'il n'est pas lancé dans un terminal.


Ce qui est bizarre, c'est la différence de comportement entre la Ubuntu
et la debian/hppa.

Merci de ton aide.


--
No animals were harmed and no Microsoft products were used in the production
of this message.
Hugo (né il y a 1 340 492 455 secondes)


Avatar
Hugolino
Le Tue, 17 Oct 2006 00:36:32 +0200, Olivier Miakinen a écrit:

TERM=dumb


set te donne les variables internes du shell. Il se peut que le shell se
soit définit tout seul un $TERM=dumb comme variable interne. Il faudrait
vérifier en utilisant env au lieu de set. Mais il se peut aussi que le
message de top soit confusant : genre, il ralerait en fait parce qu'il n'y a
pas d'entrée dumb dans la terminfo, ou encore parce qu'il n'est pas lancé
dans un terminal.


Je précise un peu la question d'Hugolino qui avait publié initialement
dans fr.comp.lang.php. Il est normal qu'il n'y ait aucun terminal défini
puisque l'interpréteur PHP est lancé à partir du serveur Apache. En
revanche, Hugolino veut lancer la commande top en mode batch (paramètres
-bn1) : est-il vraiment impossible de lancer « top -bn1 » sans avoir de
terminal ? Question subsidiaire : est-il possible de choisir un TERM au
hasard parmi ceux définis dans terminfo, par exemple la console ?

Pour info, j'ai trouvé le man de top sur Linux :
http://www.die.net/doc/linux/man/man1/top.1.html
... mais pas sur HP.


J'ai installé man2html sur ma HP, la page de man est donc disponible à
http://www.roulaize.fr/cgi-bin/man/man2html.
Je n'y ai pas vu d'allusion à un problème de variable TERM.


--
Mais je trouve que la salkware est bien surtout la 7.0
Ouppps excusez moi pas avoir ecorcher le nom de la distrib , c'est

slakware !! Je suis cretin
-+- Julien in Guide du linuxien pervers - L'erreur est humaine -+-



Avatar
lhabert
Hugolino :

Ce qui est bizarre, c'est la différence de comportement entre la Ubuntu
et la debian/hppa.


Bah ce n'est pas le même top. Tu peux peut-être essayer de compiler un gnu
top sur ton hp, en spoirant qu'il fonctionne sur cet OS.