Il y a 2 causes à ton problèmes :
- tu ne le lance pas comme un exécutable, mais comme une liste de commandes du shell
- tu utilise exec pour lancer la sous-commande
Ce qui en résumé donne :
- le contenu de ton script est lancé dans le shell en cours
- le shell en cours est remplacé par $CMD
- $CMD se termine -> le le terminal fait comme si bash s'était terminé
Fais de ton script un exécutable (chmod +x sav) et lance le avec ./sav
Moi je crois savoir pourquoi tu es moinsé. Tu fais transparaître beaucoup de préjugés à propos du libre :
- C'est développé par un étudiant boutonneux dans son coin
- Le libre ne sait pas s'organiser sérieusement
- Une communauté ne sait pas imposer les bons choix
J'ai déjà rencontré le problème, nc ne se termine pas correctement en fin de connexion, après upgrade ca a été corrigé, mais ajouter "-q 10" en option à nc a aussi corrigé le pb.
Il existe 2 mode de transfert en HTTP. Lorsque la taille à transférer est connue, le serveur utilise Content-length pour que le client sache quand se termine la requête. Lorsque la taille n'est pas connue à l'avance, il utilise le mode chunked et transfère les données morceau par morceaux (la taille de chaque morceau étant précisée à chaque fois).
Php étant dynamique, on ne connait pas la taille de ce qui est généré à l'avance d'où le mode chunked.
Je ne sais pas s'il y a moyen de dire à php de tout mettre en buffer et forcer apache à passer en content-length. Peut-être en utilisant les ob_* et en forçant toi-même le header.
C'est ce qu'on appelle plus simplement un processus.
Pour ta question de départ, dans le cas des processus, apache crée des socket unix (man socketpair) avant de forker pour communiquer avec ses fils.
Ensuite, après un accept, il envoit la nouvelle socket à travers la socket unix (man unix -> SO_RIGHTS) et le fils communique alors directement avec le client.
Tu graphe : la charge (load), l'utilisation cpu et les io pour savoir si cela vien du soft où du hard.
Ensuite tu graphe les différentes url (ou au moin les différents virtualhost) pour savoir lesquelles sont accédées en masse au même moment que ta montée en charge.
Est-ce que les compilateurs et les débuggeurs sont liés ?
Oui, ils sont développés par les mêmes personnes.
Non, le format d'exécutable (elf sur les unix) permet de faire en sorte que tout le monde marche ensemble (de même que la libc peut être celle qu'on veut ou que le ld marche avec tous les elf). Attention, il faut bien inclure les infos de débuggage (au format dwarf pour info) pour faciliter celui-ci.
Qu'est-ce qui existe comme outil permettant de debugger du code parallélisé (openMP ou MPI) ?
Je n'en connais pas, attention, le code parallélisé est très difficile a debugger.
Est-ce qu'il existe des benchmarks/articles montrant l'influence de l'OS sur la performance des programmes ?
Il ne devrait pas avoir d'influence ... mais avec du parallèle dans tous les sens les perfs peuvent varier du simple au double. Le problème c'est que les performances d'un scheduler peuvent être très spécifique à un algorithme donné. Je ne suis pas sur qu'un benchmark soit pertinent.
Marchera pas ton PATH, $PATH est vraiment une donnée qui sert pour une recherche.
Je n'ai pas bien saisi si tes serveurs sont les machines qui ont des shell ou les paramètres de des commandes.
Dans le premier cas il faudra bien que tu distribue les sudoers, tu peux surement utiliser la même techno pour les alias
Dans le 2e cas, tu peux faire un alias qui prend en paramètre le nom de la machine et autoriser une commande sans limiter les paramètres dans le sudoers.
C'est impossible car il faut bien à un moment ou à un autre que la commande sudo soit lancée pour te donner les droits de l'utilisateur 2.
Tu peux faire ce genre de chose avec sudo -i ou sudo -s, mais cela implique que tu puisse lancer un shell et donc n'importe quelle commande en tant qu'utilisateur 2
Il existe un serveur de snapshot debian qui garde toutes les versions des différents paquets debian. Et petite fonction sympathique, il permet de définir un dépôt debian pour une date donnée : http://snapshot.debian.net/
Je pense que tu n'auras pas à t'inquiéter pour ça.
Tu vas commencer à faire un peu de publicité autour de ton produit. Tu vas toucher un public de gens intéressés déjà relativement faible (tout le monde n'a pas un san à la maison). Sur ce public une faible proportion auront les compétences pour apporter des modifications à ton produit (tous les libristes ne sont pas développeurs, loin de là). Sur ces passionnés, une faible proportion aura vraiment envie de se plonger dans ton code source et y apporter des modifications (généralement ceux qui auront besoin de plus que ce que tu fournis).
Donc en regardant les ordres de grandeur se réduire, tu verra qu'il faudra attendre de toucher vraiment beaucoup de monde (des centaines de milliers de gens ?) avant que les participation ne commencent à être significatives pour toi. Et je pense que d'ici là tu auras du beurre pour plusieurs personnes :-)
Un nouveau tty est ouvert à chaque fois qu'il y en a besoin. Son numéro peut être forcé (comme on fait avec getty dans inittab) ou on peut prendre le premier disponible (comme le fait la commande openvt par défaut).
Ton serveur X prend le premier disponible puisque tu n'as pas forcé le terninal à utiliser. Si le numéro de terminal a changé, c'est qu'un autre terminal a été ouvert entre temps, par exemple pour écrire des logs.
Pour résumer la réponse peut être un peu partout vu que toutes les commandes root ont le droit d'ouvrir un nouveau terminal. Tu peux chercher en premier dans /etc/inittab et dans tout /etc/init.d
-Est ce que crée des classes les détruire et appeler des fonctions membre de classe est plus lent qu'appeler des fonctions ?
Oui, tu a 5 appels de fonction au lieu de 1 (en supposant que tu voulais dire objet, pas classe) :
- malloc
- constructeur
- ta_fonction
- destructeur
- free
Si tu n'as pas de constructeurs / destructeurs spécifiques, activer les optimisations du compilateur peut te permettre de regagner la performance perdue.
-Est ce que travailler en double précision est plus lent
C'est imperceptible sur un x86.
-Est ce que en réglant une fuite de mémoire j'ai rajouter des delete qui prennent beaucoup de temps ?
C'est pas impossible, un delete appelle une fonction supplémentaire, le destructeur, appelé souvent ça peut devenir mesurable.
-Est ce que c'est pas normal et que je devrais repenser la façon dont j'ai écris le code ?
Essaie aussi de comparer les 2 codes avec des optimisations du compilateur. Il est possible que l'écart ne soit plus le même. Si tu est sur un x86 32 bits, tu peux aussi compiler avec -mfpmath=sse -sse2 pour gagner en perfs.
Si ta partition 4 (et 3 d'ailleurs) contient déjà 2 partitions, c'est que c'est déjà une partition étendue. Dans une partition étendue tu peux ajouter autant de partitions que tu veux. Et ubuntu fonctionne très bien dans une partition étendue.
Je ne vois pas pourquoi qparted ne veut pas te créer de nouvelle partition. De plus c'est le logiciel que j'allais te suggérer pour redimensionner tes partitions.
-Pensez vous qu'un tel système serait adapté à linux.
Je pense qu'il est surtout adapté à la vente aux particuliers. Mais il a l'avantage de réduire les coûts de vente et donc de rendre les logiciels vendus en petite quantité plus rentables.
-Etes vous pour ou contre ?
Pour, on a beau avoir beaucoup de logiciels libres, on n'a pas tout. Un certains de logiciels de niche ne sont pas présent, ce qui empêche souvent un certain nombre d'entreprises de considérer sérieusement linux. De plus, un certain nombre de logiciels propriétaires sont graphiquement mieux léchés que ceux de linux. Là aussi la concurrence serait une bonne chose et inciterait les logiciels libres à faire mieux.
-Estimez vous que ce système serait favorable à la promotion de linux ? ou, au contraire, lui nuirait-il ?
Ça lui serait donc favorable. En plus cela créerait une polémique à travers certains extrémistes et ferait un peu de publicité.
Et pour parler de la réticence des entreprise à développer pour linux, il y a plusieurs raisons. Tout d'abord le fait que quasiment tous les logiciels soient libres sous linux fait peur aux entreprises, soit parce qu'ils n'y connaissent rien et pensent qu'il n'est pas possible de faire du non libre, soit qu'il n'y a pas de logiciel propriétaire à succès qui leur montrer que c'est possible.
Ensuite, le diversité des distributions linux multiplie les coûts de développement pour estampiller son produit "linux".
Ce bloc commun s'appelle la lsb (c'est plus intéressante pour les logiciels que pour les jeux).
Parce que s'il faut tout redévelopper en partant du principe qu'il n'y a que le noyau de disponible, autant développer sous dos. Ca va coûter cher !
gros fichier (40 Go) [...] une partition presque pleine (1 Go libre)
5% de 1To ça fait 50Go.
Mais bon, s'il n'y a pas d'activité sur le disque ce n'est pas ça. Beaucoup de ram et tout se retrouve dans le buffer du pipe ssh ?
Bon, peu probable.
Tu as regardé le code de retour de ssh ?
Sur une partition de type ext, il y a un espace réservé à root (habituellement 5%). Cette place n'apparait pas dans l'espace libre de la partition. Il est donc possible de disposer encore de quelques gigas alors qu'il t'indique une place nulle. C'est fait principalement pour te permettre de de connecter en root et réparer en cas de problème du au remplissage.
[^] # Re: Pistes
Posté par peck (site web personnel) . En réponse au message problème crontab. Évalué à 1.
Utilisateur ?
[^] # Re: Grandiose
Posté par peck (site web personnel) . En réponse au journal Linuxfr en J2EE. Évalué à 4.
Personne ne note, mais ca me rappelle une blague en 200 d'un mec qui cherchais quelqu'un avec 7 ans d'expérience en java ...
# Lancement
Posté par peck (site web personnel) . En réponse au message mon script ferme le terminal ?!. Évalué à 2.
- tu ne le lance pas comme un exécutable, mais comme une liste de commandes du shell
- tu utilise exec pour lancer la sous-commande
Ce qui en résumé donne :
- le contenu de ton script est lancé dans le shell en cours
- le shell en cours est remplacé par $CMD
- $CMD se termine -> le le terminal fait comme si bash s'était terminé
Fais de ton script un exécutable (chmod +x sav) et lance le avec ./sav
[^] # Re: Existent-il un projet OpenSource qui a été érit selon la méthode
Posté par peck (site web personnel) . En réponse à la dépêche Coding Dojo à Grenoble. Évalué à 0.
- C'est développé par un étudiant boutonneux dans son coin
- Le libre ne sait pas s'organiser sérieusement
- Une communauté ne sait pas imposer les bons choix
# Déjà rencontré
Posté par peck (site web personnel) . En réponse au message multitude de sshd qui trainent. Évalué à 6.
# Il y a ce qu'il faut dans patch-o-matic
Posté par peck (site web personnel) . En réponse au message Autoriser le réseau de 8H à 17H. Évalué à 2.
http://www.cyberciti.biz/tips/iptables-for-restricting-acces(...)
Bon effectivement ca nécessite de patcher iptables et netfilter, mais ce n'est pas très compliqué.
# Mode de transfert
Posté par peck (site web personnel) . En réponse au message Apache et Content Length. Évalué à 4.
Php étant dynamique, on ne connait pas la taille de ce qui est généré à l'avance d'où le mode chunked.
Je ne sais pas s'il y a moyen de dire à php de tout mettre en buffer et forcer apache à passer en content-length. Peut-être en utilisant les ob_* et en forçant toi-même le header.
[^] # Re: Doc Apache
Posté par peck (site web personnel) . En réponse au message Thread : comment fonctionne Apache ? comment bien faire ?. Évalué à 2.
Pour ta question de départ, dans le cas des processus, apache crée des socket unix (man socketpair) avant de forker pour communiquer avec ses fils.
Ensuite, après un accept, il envoit la nouvelle socket à travers la socket unix (man unix -> SO_RIGHTS) et le fils communique alors directement avec le client.
# Configuration
Posté par peck (site web personnel) . En réponse à la dépêche Gestion de configuration distribuée avec Mercurial. Évalué à 10.
# Cacti
Posté par peck (site web personnel) . En réponse au message Trouver goulot d'étranglement d'Apache. Évalué à 4.
Tu graphe : la charge (load), l'utilisation cpu et les io pour savoir si cela vien du soft où du hard.
Ensuite tu graphe les différentes url (ou au moin les différents virtualhost) pour savoir lesquelles sont accédées en masse au même moment que ta montée en charge.
# Article fr
Posté par peck (site web personnel) . En réponse au message Compilation Kernel. Évalué à 2.
http://linux-attitude.fr/post/La-peche
# Exécutables
Posté par peck (site web personnel) . En réponse au message calcul scientifique : choix OS, compilateur, debuggeur. Évalué à 4.
Est-ce que les compilateurs et les débuggeurs sont liés ?
Oui, ils sont développés par les mêmes personnes.
Non, le format d'exécutable (elf sur les unix) permet de faire en sorte que tout le monde marche ensemble (de même que la libc peut être celle qu'on veut ou que le ld marche avec tous les elf). Attention, il faut bien inclure les infos de débuggage (au format dwarf pour info) pour faciliter celui-ci.
Qu'est-ce qui existe comme outil permettant de debugger du code parallélisé (openMP ou MPI) ?
Je n'en connais pas, attention, le code parallélisé est très difficile a debugger.
Est-ce qu'il existe des benchmarks/articles montrant l'influence de l'OS sur la performance des programmes ?
Il ne devrait pas avoir d'influence ... mais avec du parallèle dans tous les sens les perfs peuvent varier du simple au double. Le problème c'est que les performances d'un scheduler peuvent être très spécifique à un algorithme donné. Je ne suis pas sur qu'un benchmark soit pertinent.
[^] # Re: shebang
Posté par peck (site web personnel) . En réponse au message Configuration avancée sudoers / sudo. Évalué à 2.
Je n'ai pas bien saisi si tes serveurs sont les machines qui ont des shell ou les paramètres de des commandes.
Dans le premier cas il faudra bien que tu distribue les sudoers, tu peux surement utiliser la même techno pour les alias
Dans le 2e cas, tu peux faire un alias qui prend en paramètre le nom de la machine et autoriser une commande sans limiter les paramètres dans le sudoers.
[^] # Re: shebang
Posté par peck (site web personnel) . En réponse au message Configuration avancée sudoers / sudo. Évalué à 2.
# Impossible
Posté par peck (site web personnel) . En réponse au message Configuration avancée sudoers / sudo. Évalué à 3.
Tu peux faire ce genre de chose avec sudo -i ou sudo -s, mais cela implique que tu puisse lancer un shell et donc n'importe quelle commande en tant qu'utilisateur 2
# Snapshot
Posté par peck (site web personnel) . En réponse au message Mise à jour. Évalué à 4.
# Inquiet ?
Posté par peck (site web personnel) . En réponse au message Programmation d'un nouveau protocol. Évalué à 2.
Tu vas commencer à faire un peu de publicité autour de ton produit. Tu vas toucher un public de gens intéressés déjà relativement faible (tout le monde n'a pas un san à la maison). Sur ce public une faible proportion auront les compétences pour apporter des modifications à ton produit (tous les libristes ne sont pas développeurs, loin de là). Sur ces passionnés, une faible proportion aura vraiment envie de se plonger dans ton code source et y apporter des modifications (généralement ceux qui auront besoin de plus que ce que tu fournis).
Donc en regardant les ordres de grandeur se réduire, tu verra qu'il faudra attendre de toucher vraiment beaucoup de monde (des centaines de milliers de gens ?) avant que les participation ne commencent à être significatives pour toi. Et je pense que d'ici là tu auras du beurre pour plusieurs personnes :-)
# tty
Posté par peck (site web personnel) . En réponse au message Serveur X et touches de Fonctions. Évalué à 2.
Un nouveau tty est ouvert à chaque fois qu'il y en a besoin. Son numéro peut être forcé (comme on fait avec getty dans inittab) ou on peut prendre le premier disponible (comme le fait la commande openvt par défaut).
Ton serveur X prend le premier disponible puisque tu n'as pas forcé le terninal à utiliser. Si le numéro de terminal a changé, c'est qu'un autre terminal a été ouvert entre temps, par exemple pour écrire des logs.
Pour résumer la réponse peut être un peu partout vu que toutes les commandes root ont le droit d'ouvrir un nouveau terminal. Tu peux chercher en premier dans /etc/inittab et dans tout /etc/init.d
# Impact dans ...
Posté par peck (site web personnel) . En réponse au message Classe / double et vitesse. Évalué à 3.
-Est ce que crée des classes les détruire et appeler des fonctions membre de classe est plus lent qu'appeler des fonctions ?
Oui, tu a 5 appels de fonction au lieu de 1 (en supposant que tu voulais dire objet, pas classe) :
- malloc
- constructeur
- ta_fonction
- destructeur
- free
Si tu n'as pas de constructeurs / destructeurs spécifiques, activer les optimisations du compilateur peut te permettre de regagner la performance perdue.
-Est ce que travailler en double précision est plus lent
C'est imperceptible sur un x86.
-Est ce que en réglant une fuite de mémoire j'ai rajouter des delete qui prennent beaucoup de temps ?
C'est pas impossible, un delete appelle une fonction supplémentaire, le destructeur, appelé souvent ça peut devenir mesurable.
-Est ce que c'est pas normal et que je devrais repenser la façon dont j'ai écris le code ?
Essaie aussi de comparer les 2 codes avec des optimisations du compilateur. Il est possible que l'écart ne soit plus le même. Si tu est sur un x86 32 bits, tu peux aussi compiler avec -mfpmath=sse -sse2 pour gagner en perfs.
[^] # Re: Agrandir la 4e?
Posté par peck (site web personnel) . En réponse au message Copie de disque et Partitions. Évalué à 2.
Tous les disques sont très gros et fonctionnent en lba. Les géométries sont toutes fictives et identiques.
# Parition logique
Posté par peck (site web personnel) . En réponse au message Copie de disque et Partitions. Évalué à 2.
Je ne vois pas pourquoi qparted ne veut pas te créer de nouvelle partition. De plus c'est le logiciel que j'allais te suggérer pour redimensionner tes partitions.
# Pour
Posté par peck (site web personnel) . En réponse au message Logiciels payants sous linux : pour ou contre ???. Évalué à 1.
-Pensez vous qu'un tel système serait adapté à linux.
Je pense qu'il est surtout adapté à la vente aux particuliers. Mais il a l'avantage de réduire les coûts de vente et donc de rendre les logiciels vendus en petite quantité plus rentables.
-Etes vous pour ou contre ?
Pour, on a beau avoir beaucoup de logiciels libres, on n'a pas tout. Un certains de logiciels de niche ne sont pas présent, ce qui empêche souvent un certain nombre d'entreprises de considérer sérieusement linux. De plus, un certain nombre de logiciels propriétaires sont graphiquement mieux léchés que ceux de linux. Là aussi la concurrence serait une bonne chose et inciterait les logiciels libres à faire mieux.
-Estimez vous que ce système serait favorable à la promotion de linux ? ou, au contraire, lui nuirait-il ?
Ça lui serait donc favorable. En plus cela créerait une polémique à travers certains extrémistes et ferait un peu de publicité.
Et pour parler de la réticence des entreprise à développer pour linux, il y a plusieurs raisons. Tout d'abord le fait que quasiment tous les logiciels soient libres sous linux fait peur aux entreprises, soit parce qu'ils n'y connaissent rien et pensent qu'il n'est pas possible de faire du non libre, soit qu'il n'y a pas de logiciel propriétaire à succès qui leur montrer que c'est possible.
Ensuite, le diversité des distributions linux multiplie les coûts de développement pour estampiller son produit "linux".
[^] # Re: Pour !!!
Posté par peck (site web personnel) . En réponse au message Logiciels payants sous linux : pour ou contre ???. Évalué à 2.
Parce que s'il faut tout redévelopper en partant du principe qu'il n'y a que le noyau de disponible, autant développer sous dos. Ca va coûter cher !
[^] # Re: Place réservée
Posté par peck (site web personnel) . En réponse au message Bug ssh ?. Évalué à 2.
gros fichier (40 Go) [...] une partition presque pleine (1 Go libre)
5% de 1To ça fait 50Go.
Mais bon, s'il n'y a pas d'activité sur le disque ce n'est pas ça. Beaucoup de ram et tout se retrouve dans le buffer du pipe ssh ?
Bon, peu probable.
Tu as regardé le code de retour de ssh ?
# Place réservée
Posté par peck (site web personnel) . En réponse au message Bug ssh ?. Évalué à 3.
Sur une partition de type ext, il y a un espace réservé à root (habituellement 5%). Cette place n'apparait pas dans l'espace libre de la partition. Il est donc possible de disposer encore de quelques gigas alors qu'il t'indique une place nulle. C'est fait principalement pour te permettre de de connecter en root et réparer en cas de problème du au remplissage.
En pratique cela se règle avec tune2fs -m