PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Cyrille BORNE : 2017, l'année où on va encore mourir plus

jeudi 22 décembre 2016 à 10:00

En début 2016 j'avais écrit 2016 parce qu'on est en 2016, l'année où on finit tout, une référence à Orelsan qui est certainement ce qui se fait de mieux en RAP dans ces tristes dernières années où le RAP c'est désormais maître Gims, il s'agissait d'un billet pour expliquer ma volonté de finir ce que j'avais entrepris et de me désinvestir de tout projet collectif. J'ai plutôt réussi les deux, la terrasse est finie, le garage est acheté, je finis une dernière vague de travaux, il n'y aura plus rien derrière, du côté projet et communautaire, c'est parfaitement au point, je suis ici et peu ailleurs, github et quelques forums, je ne fais plus grand chose à part écrire encore et encore. En perspectives personnelles 2017, je ne m'engage pas, la mauvaise surprise au niveau de la santé de mon épouse, les promenades à Toulouse rappellent à l'ordre, l'accumulation de fatigue au point de se prendre un tampon, on a un plan, on essaie de s'y tenir et un grain de sable vient tout chambouler, j'éviterai donc d'évoquer mes projets qui sont simples, abandonner toute forme de responsabilité et profiter un peu pour faire un peu la madame soleil de l'informatique et vous annoncer que nous allons mourir encore plus cette année.

Antistress a fait la synthèse de cette année, il écrit suffisamment rarement pour ne pas le backlinker, il s'agit d'un bilan optimiste, c'est un point de vue, moi vous savez je suis le gars qui lorsqu'il regarde un verre, même s'il est plein, aime bien juste pour le plaisir vous montrer comment on pourrait imaginer qu'il soit vide. Cela dit, la situation n'est pas brillante.

La mort de FirefoxOS est certainement la plus mauvaise nouvelle libre de l'année car elle illustre plusieurs problèmes. Une véritable crise de confiance face à la fondation Mozilla qui aura largement démontré qu'il n'y a avait pas qu'une volonté de faire du logiciel libre pour les masses mais une stratégie ambiguë, floue et peu efficace, son système d'exploitation mobile en tête après des cliff hangers dignes de 24 heures chrono puis thunderbird qu'il ne faudrait pas oublié et dont on cherche à se débarrasser. Il serait facile de jeter la pierre uniquement à Mozilla, on peut citer Cozycloud par exemple avec le recrutement très publicitaire de Tristan Nitot le monsieur qui écrit des bouquins sur la surveillance mais qui a quand même sa page facebook, le licenciement de l'un des fondateurs pour une application qui vous m'excuserez était de très mauvaise qualité l'an dernier, j'émets quelques doutes quant à la qualité actuelle, on communique plus qu'on ne code et comme je me permets la gratuité du mauvais propos, je ne prendrai même pas la peine de voir si c'est mieux. Alors oui, continuons de tirer sur l'ambulance, l'année des forks, on crache sur le partenariat entre l'éducation nationale et Microsoft quand de l'autre côté Owncloud n'est plus dans les dépôts Debian et Nextcloud n'est pas entré, la même chez seafile, ça se marave à tour de bras sans voir émerger une solution alternative qui pourrait faire office de référence, pendant ce temps là je peux vous le dire pour l'utiliser chaque jour, office365 se bonifie, avance. Que dire des Apple Store qui risquent de devenir les nouveaux lieux pédagogiques, si ça commence à inquiéter c'est qu'il y a une raison à ça, l'ambiguité que maintient l'état avec les grosses boîtes d'informatique, souvenez de cet homme qui offrait des Ipad aux enfants de son département ou de Lordi de la région et des accords passés avec Dell puis HP. On peut difficilement jeter la pierre à des enseignants qui ne comprennent rien car personne ne comprend rien sauf les GAFAM qui voient l'intérêt de former très jeunes les enfants à leurs produits.

La marave est partout, pas seulement chez les codeurs mais chez les utilisateurs, des rageux dans tous les coins, c'est certainement le climat politique qui veut ça, l'élection de Trump, les attentats, il va falloir retrouver la parole fraternelle, c'est par là qu'il faudra commencer et je vous offre une pause musicale, une pause Saez. Malheureusement comme les gens sont cons, ce n'est pas la parole fraternelle qui va calmer le jeu en 2017 mais les outils de modération et de contrôle, car c'est certainement ça 2017 la fin de la fête et de la liberté d'expression, si on définit la liberté d'expression par celle de pouvoir cracher sur son voisin.

Mais revenons sur la mort de Firefox OS, mais aussi celle de Jolla, de Cyanogen ou encore celle de Windows Phone qui est certainement celle qui m'inquiète le plus. Vous me direz qu'on a toujours le choix dans la vie, le choix d'utiliser un Nokia 3310, de ne pas avoir de smartphone, de continuer à sortir le bon vieux GPS et l'appareil photo, personnellement j'aurai du mal, je fais peu de choses avec le smartphone, mais ce que je fais c'est déjà beaucoup et pratique même si je me rends compte des grandes limitations de Windows Phone, si on constate un net progrès dans la transposition des sites en version mobile, qu'il n'est plus nécessaire d'avoir de façon systématique l'application, les sites avec Edge sont souvent déformés, pas mieux avec Opera, on sent que l'étau se referme de plus en plus sur le consommateur autour des solutions Android et Apple. Donc il y a de bonnes chances pour que mon prochain smartphone soit Android quand j'arriverai au bout de mon Nokia, car l'écosystème d'Apple est trop cher pour moi. Le pas cher a quand même un prix, celui de la sécurité désormais directement au niveau du matériel, chaque semaine apporte son lot de backdoor dans nos téléphones chinois. On réalise qu'il y a largement la place pour un système alternatif, pour du hardware alternatif, sauf que si Microsoft avec tout son argent se casse les dents, ça laisse peu d'espoir pour le reste, on continue de regarder du côté d'Ubuntu où les quelques rares blogueurs qui écrivent encore, ça a l'air de progresser mais après la déception Firefox OS, il sera très difficile de faire passer la pilule encore plus quand celle-ci dépasse les 200 €.

L'étau qui resserre c'est aussi sur PC, on l'a vu cette année avec Lenovo, il devient de plus en plus difficile d'installer Linux sur du matériel récent, pas cher, comme tous ces ordinateurs à tarif abordable à 32 Go de disque dur partagés avec Windows 10 qui feraient de bons PC sous Debian. On se rabat alors sur le marché du PC de l'occasion mais pour combien de temps encore ? Du côté des distributions Linux, je ne vois plus d'évolution vraiment significative depuis plusieurs années, les versions se suivent et se ressemblent sauf dans l'interface graphique où c'est uniquement ici que ça se joue, pour preuve la fiesta qu'on fait avec le menu de libreoffice qui imite celui de Microsoft. Les bugs continuent de s'installer et les interfaces quand certains logiciels sont tellement instables qu'ils plantent trois fois l'heure, on se dit que ce n'est pas la première des préoccupations, la mienne en tout cas, pas celle des développeurs qui donnent toujours plus la sensation de traîter la forme plus que le fond.

Et oui tout fout le camp ma bonne dame, vous comptiez les blogueurs francophones sur les doigts des mains et des pieds en 2016, cette année ce sera sur les doigts des mains et des pieds d'un manchot unijambiste. J'aurai bien voulu être encourageant en disant que la très grande majorité des gens qui écrivaient et qui n'écrivent plus pour des raisons qui leur appartiennent ont migré ou ont été remplacés par de jeunes Youtubeurs, malheureusement ce n'est pas le cas, si quelques uns tentent l'aventure ils ne remplacent pas les centaines de blogueurs traitant du libre il y a moins de 10 ans. Je n'irai pas dire qu'ils n'utilisent pas Youtube car faire du libre sur cette plateforme c'est comme animé une émission bio depuis le Mac Do mais tout simplement parce que le libre on considère que c'est peut-être désormais tellement passé dans les moeurs qu'il n'est même plus la peine d'en parler, peut-être que ça marche trop bien, peut-être autre chose, peut-être.

Alors oui ma bonne dame, il n'y a pas de réelle raison que la tendance 2017 s'inverse cette année sauf peut-être car c'est le billet des peut-être que la vie c'est encore ça, des gens toujours de plus en plus seuls, des jeunes, des vieux, toute catégories socio professionnelles confondues et qui malgré les facebook, les twitters et les instagram regarderont Patrick Sébastien le soir de Noël, peut-être une prise de conscience généralisée que tout ceci n'est qu'un outil, pas un but, que derrière les écrans il y a des gens qu'on se doit d'aimer et de respecter, s'ils font encore l'effort d'être respectables.

Gravatar de Cyrille BORNE
Original post of Cyrille BORNE.Votez pour ce billet sur Planet Libre.

genma : FreshRSS - Vérifier la validité du flux

jeudi 22 décembre 2016 à 09:00

Fonctionnalité anecdotique mais néanmoins intéressante, FreshRSS propose dans sa partie administration / gestion des liens atom/RSS de vérifier la validité du flux. Voir l'image ci-dessous :

Lorsque l'on clique sur le bouton Vérifier la validité du flux,

cela appelle l'URL du W3C validator https://validator.w3.org/feed/ avec en paramètre l'url du flux. On est alors directement sur la page de résultat du flux.

Un bon moyen de savoir si un flux est correct ou s'il est nécessaire d'y apporter des modifications.

Personnellement je suis abonné au flux RSS de mon propre blog, cela me permet de vérifier rapidement et simplement que les articles dont la publication est programmée c'est bien faite (si ils apparaissent dans le flux RSS, ils sont également publiés sur le blog). Je pense que de temps en temps il faudrait que je clique sur ce bouton (en attendant de finir mon projet Python de scripter l'appel aux URL du W3C avec envoie d'un mail donnant le résultat des différents validators, mais ce sera le sujet d'un autre billet).

Gravatar de genma
Original post of genma.Votez pour ce billet sur Planet Libre.

Articles similaires

Cyrille BORNE : On continue

jeudi 22 décembre 2016 à 08:00

ça c'est fait :

Vous voyez le tas de copies, ben il manque encore un paquet et ça vous donne une idée de ce que j'ai pu corriger dans la journée d'hier. Levé à 5h30 du matin, j'ai fini à 18h30, j'ai fait quelques courses, le repas, j'estime qu'en gros j'ai passé 10 heures de correction. C'est souvent un classique, pour réussir à tenir les élèves jusqu'au bout dans ces période de fêtes, on positionne des examens blancs dans la dernière semaine, c'est ça l'esprit de Noël. Le souci derrière c'est qu'il faut corriger, voilà qui est fait. Et encore je me dis que dans mon malheur j'ai de la chance, mes collègues de français qui ont la même chose avec des enfants qui ne savent plus lire et encore moins écrire, qui ne font aucun effort de propreté, corriger une copie de français ou d'histoire c'est jouer les Champollion avec autant de pierre de Rosette que de copies, et quand je dis rosette, je parle bien du saucisson. 

J'ai eu un problème avec le dernier billet de blog dans lequel j'ai mis la vidéo, crash de Firefox. Je pense qu'il faut que je me penche sur la balise vidéo, il doit certainement y avoir la possibilité de faire un tampon, une mise en cache, ou une variante. En effet la vidéo faisait plus de 120 megas, je ne m'étais pas posé la question et l'avait laissée en 1920x1080. Résultat des courses pendant l'écriture avec Firefox je me rendais compte que la mémoire augmentait de plus en plus pour arriver à l'impossibilité d'écrire. Hier j'ai réalisé que la vidéo n'apparaissait pas, j'ai réduit avec Handbrake la vidéo pour passer à du 480 pixels ce qui est suffisant, on passe d'une vidéo de 120 Mo à 7 Mo qui se lit directement. Pour se faire j'ai utilisé Handbrake de la façon suivante :

La vidéo pose quand même des problèmes évidents en bande passante, dans la journée où j'ai fait paraître le billet, pas moins de 409 Go utilisés, c'est un véritable gouffre. A une époque j'aurais utilisé avidemux pour réaliser ce genre de manipulation, finalement Handbrake permet de faire pas mal de choses sur une interface plus agréable et qui plante moins, de la même manière pour le découpage de vidéo, j'utilise désormais openshot. Le passage à l'interface QT chez avidemux n'aura pas fait que des merveilles, en QT d'ailleurs je n'utilise plus que Kolourpaint4 qui reste ce qui se rapproche le plus de paint de Microsoft et qui est largement suffisant pour les grandes opérations.

Le plus dur dans le métier ce n'est pas de faire c'est de penser à tout, surtout quand tout ne se limite pas à la correction de copie. Par exemple, j'ai une collègue qui a fait de l'initiation au secourisme avec les élèves de troisième, elle a fait 64 photos, un petit article, je mets en ligne. Il est important de le faire, tout le monde ne peut pas, ne doit pas, avoir la main sur le Wordpress de l'établissement et il est fondamental de faire vivre le site du lycée, c'est la meilleure des publicités qu'on puisse avoir, elle permet de mettre en avant à faible coût ce qu'on fait dans notre lycée, le savoir faire et les apprentissages de nos élèves. C'est amusant parce que ma belle soeur s'implique dans l'APEL de ses filles, et découvre donc l'envers du décors, l'APEL c'est l'association des parents d'élèves. Je lui ai monté un Wordpress à l'arrache et elle m'expliquait la difficulté qu'elle avait pour ramasser trois photos et quatre lignes quand un enseignant de base écrit quatre lignes à la minute et a un smartphone dans sa poche. Voyez tout de même une fois de plus que l'informatisation à outrance c'est très loin, et quand je vois la Foire Aux Questions pour le livret scolaire unique, cette révolution qu'il fallait mettre en place dans l'urgence, où les parents n'ont pas encore les codes ce qui fait que les enseignants ont dû imprimer sur papier les bulletins de cette première période, sans commentaire.

Donc j'en étais à 64 photos à mettre en ligne, c'est trop, et je n'ai pas envie de me casser la tête à faire du tri, ce serait "sacrifier" des élèves qui sont contents, eux, leurs parents de se voir en ligne en train de bosser. C'est un peu comme un enseignant qui rentre couvert de craie le soir, une preuve de travail. J'utilise le logiciel imagination pour faire la vidéo en quelques minutes et je me suis retrouvé avec le cas étrange qui est le suivant :

Si vous regardez en bas, il y a 50 diapositives d'importées mais aucune n'apparaît, j'ai pensé que ça venait du logiciel, en fait ça venait des images en elle même. La visionneuse de Xfce est incapable de les ouvrir, Imagination est incapable de les ouvrir, un problème de GTK ou pas loin, car elles s'ouvrent avec Kolourpaint4. En redimensionnant les images ça passe partout, comment redimensionner 64 images à 50% des dimensions sans perte de temps, bienvenue dans l'univers de la ligne de commande :

mogrify -resize 50% *

Attention par contre c'est destructeur, il va redimensionner les images à la volée.

Il me reste encore quelques bricoles à faire, regarder la paperasse, scanner des documents, regarder des documents, jeter des papiers, la science avance quand même. Si d'habitude les vacances de Noël ne sont reposantes pour personne car placées sous le signe des repas, des enfants énervés, celles-ci pour moi sont ancrées dans le travail et les travaux, pour arriver à l'objectif fixé en début d'année 2016, finir tout ce qui a été entrepris et lever le pied. Si pour finir les choses entreprises c'est évident, je ne vois pas ce que peut me faire faire ma femme à part racheter la maison du voisin, pour le travail ça se tassera en juillet 2017 où je lâche les responsabilités pédagogiques de professeur principal et peut être de chef de l'informatique, ne plus pouvoir aller à la cantine sans qu'on me parle du réseau, d'un bug, ou d'un iphone qui ne marche plus ça a tendance à devenir de plus en plus insupportable.

Gravatar de Cyrille BORNE
Original post of Cyrille BORNE.Votez pour ce billet sur Planet Libre.

Bridouz : Conky, mpd et rubrique à vracs

jeudi 22 décembre 2016 à 01:00

Aujourd’hui petit point vracs linuxien en perspective. En ce moment j’ai pas mal de projets sur le feu et c’est un réel plaisir d’avoir un OS qui fonctionne tranquillement pour prendre le temps de prendre le temps pour autre chose que réparer et maintenir son système.

Donc j’ai plusieurs points que j’aimerai aborder avec vous aujourd’hui. Le premier concerne un logiciel que j’avais oublié : Conky

Conky et moi c’est une longue histoire, je me rappelle l’avoir usé il y a bientôt 7 ans, à l’époque je tournais avec Ubuntu et je découvrais Linux et sa liberté. Je bidouillais Conky comme un pied mais l’important c’est que je bidouillais et que cela m’amusait. Même qu’à l’époque pendant plusieurs mois je dialoguais avec un utilisateur du forum Ubuntu-Fr et quelle ne fut pas ma surprise en découvrant qu’il s’agissait d’un ami qui était au Lycée avec moi. Comme quoi le monde du libre c’est de l’humain.

Quoi qu’il en soit j’avais pour projet depuis un moment de reprendre la bidouille sur Conky pour m’en faire un tout parfait pour moi.

Il ressemble à cela.

Conky

En voici le script :

### Solus conky ###

    background yes
    update_interval 2

    cpu_avg_samples 1
    net_avg_samples 2
    temperature_unit celsius

    double_buffer yes
    no_buffers yes
    text_buffer_size 2048

    gap_x 50
    gap_y 150
    minimum_size 300 200
    maximum_width 300
    own_window yes
    #own_window_type desktop
    #own_window_type panel # Just use with KWin for example in Xfce
    own_window_transparent no
    own_window_argb_visual yes
    own_window_class conky-semi
    own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below
    border_inner_margin 10
    border_outer_margin 10
    alignment bottom_left

    draw_shades no
    draw_outline no
    draw_borders no
    draw_graph_borders no

    override_utf8_locale yes
    use_xft yes
    xftfont caviar dreams:size=8
    xftalpha 0.5
    uppercase no
    imlib_cache_size 0

    # Definiendo Colores

    # 1 - Color Predeterminado
    default_color FFFFFF

    # 2 - Sombras
    color1 DDDDDD
    color2 AAAAAA
    color3 888888

    # 3 - Color de Separador
    color4 5294e2

    # 4 - Color de Titulo
    color5 00BCD5

    # Loading lua script for drawning rings
    #lua_load ./seamod_rings.lua
    #lua_load ~/musictools/conky/conky-music/player.lua
    lua_draw_hook_pre main

    ## System information using conky capabilities

    # Header with base system info
    own_window_argb_value 153
    own_window_colour 000000

	TEXT

${image $HOME/.conky/soluscircle.png -p 15,0 -s 60x60}${voffset 8}$alignc$font${font Arial:bold:size=10}${color 4c5263}Set Sail for Adventure


${font Arial:bold:size=10}${color white}SYSTEM ${color DarkSlateGray} ${hr 2}
$font${color DimGray}$sysname $kernel $alignr $machine
Uptime $alignr${uptime}
File System $alignr${fs_type}
$font${color DimGray}/ $alignc ${fs_used /} / ${fs_size /} $alignr ${fs_free_perc /}%

${font Arial:bold:size=10}${color white}PROCESSORS ${color DarkSlateGray}${hr 2}
$font${color DimGray}${cpubar cpu1}
${cpubar cpu2}

${font Arial:bold:size=10}${color white}MEMORY ${color DarkSlateGray}${hr 2}
$font${color DimGray}MEM $alignc $mem / $memmax $alignr $memperc%
$membar
$font${top_mem name 1}${alignr}${top_mem mem 1}% 
$font${top_mem name 2}${alignr}${top_mem mem 2}% 
$font${top_mem name 3}${alignr}${top_mem mem 3}% 

${font Arial:bold:size=10}${color white}NETWORK ${color DarkSlateGray}${hr 2}
$font${color DimGray}IP on wlp3s0b1 $alignr ${addr wlp3s0b1}

Down $alignr ${downspeed wlp3s0b1} kb/s
Up $alignr ${upspeed wlp3s0b1} kb/s

Downloaded: $alignr  ${totaldown wlp3s0b1}
Uploaded: $alignr  ${totalup wlp3s0b1}

${font Arial:bold:size=10}${color white}MUSIC ${color DarkSlateGray}${hr 2}
${color DimGray}$font${if_running mpd}${if_mpd_playing}
${image /tmp/mpd-track-cover -p 2,520 -s 50x50}${offset 64}${mpd_artist} - ${mpd_title}
${offset 64}${mpd_bar}
${offset 64}${mpd_elapsed}/${mpd_length}
${exec /home/justin/.conky/extract_cover.sh}
${else}$alignc Mpd en attente
$endif
${else}$alignc Mpd en panne ?
${endif}

Avec ça j’utilise un script pour extraire la cover utilisé par mpd pour la balancer dans conky. Pour qu’il fonctionne il faut que exiftool soit installé sur votre système. Le script :

#!/bin/sh

MPD_MUSIC_PATH="/home/user/Musique"
TMP_COVER_PATH="/tmp/mpd-track-cover"

exiftool -b -Picture "$MPD_MUSIC_PATH/$(mpc --format "%file%" current)" > "$TMP_COVER_PATH"

Pour ce qui est du vracs il y a pas mal de choses :

Voilà pour le point bisounours Linuxien de fin d’année, quand tout marche correctement c’est important de le dire aussi, sinon on va finir par penser que Linux c’est pas bien et que la bidouille n’est réservée qu’à une élite de l’informatique, qui ne conçoit pas la vie sans une simple interface en ligne de commande.

Gravatar de Bridouz
Original post of Bridouz.Votez pour ce billet sur Planet Libre.

Carl Chenet : htop expliqué, partie 5 : l’état des processus

jeudi 22 décembre 2016 à 00:00

Article arrivé 1er sur Hacker News, 1er sur /r/sysadmin, 2nd sur /r/linux), traduit avec l’accord de son auteur Pēteris Ņikiforovs, il présente la commande htop et les notions de base des composants d’un système GNU/Linux que cette commande affiche.

Voici les différents chapitres déjà publiés :

  1. l’uptime
  2. la load average (charge moyenne)
  3. les processus
  4. les processus utilisateur

Aujourd’hui : les différents états possibles des processus


htop

L’état des processus

Nous allons maintenant jeter un œil à la colonne de l’état des processus dans htop qui est notée simplement avec la lettre S.

Voilà les différentes valeurs possibles :

R – en cours d’exécution ou possible à exécuter (dans la file d’exécution)
S – sommeil interruptible (en attente de l’accomplissement d’un événement)
D – sommeil non-interruptible (en général en train de réaliser des entrées-sorties)
Z – processus défunt (zombie), terminé mais le retour n’a pas été recueilli par son parent
T – stoppé par un signal de contrôle de tâche
t – stoppé par un debugger pendant l’étude de la trace
X – mort (ne devrait jamais être vu)

Je les ai ordonnés ici par la fréquence à laquelle je les vois.

Notez que si vous exécutez ps, il montrera aussi des sous-états comme Ss, Ss+, etc.

$ ps x
 PID TTY STAT TIME COMMAND
 1688 ? Ss 0:00 /lib/systemd/systemd --user
 1689 ? S 0:00 (sd-pam)
 1724 ? S 0:01 sshd: vagrant@pts/0
 1725 pts/0 Ss 0:00 -bash
 2628 pts/0 R+ 0:00 ps x

R – en cours d’exécution ou possible à exécuter (dans la file d’exécution)

Dans cet état, le processus est en cours d’exécution ou dans une file d’attente à attendre d’être exécuté.

Qu’est-ce que ça signifie ?

Quand vous compilez le code source d’un programme que vous avez écrit, ce code machine est composé d’instructions CPU. Il est sauvé dans un fichier qui sera exécuté. Quand vous lancez un programme, il est chargé en mémoire et ensuite le CPU exécute ces instructions.

Basiquement, cela signifie que le CPU est physiquement en train d’exécuter les instructions. Ou, dans d’autres termes, en train de dévorer des nombres.

S – sommeil interruptible (en attente de l’accomplissement d’un événement)

Cela signifie que les instructions du code de ce processus ne sont pas en train d’être exécutées sur le CPU. À la place, ce processus est en attente que quelque chose – un événement ou une condition – arrive. Quand cet événement arrive, le noyau passe l’état à en cours d’exécution.

Un exemple est l’utilitaire sleep de coreutils. Il va s’endormir pendant un nombre spécifique de secondes (approximativement).

$ sleep 1000 &
[1] 10089
$ ps f
 PID TTY STAT TIME COMMAND
 3514 pts/1 Ss 0:00 -bash
10089 pts/1 S 0:00 \\_ sleep 1000
10094 pts/1 R+ 0:00 \\_ ps f

Donc c’est un sommeil interruptible. Comme pouvons-nous l’interrompre ?

En envoyant un signal.

Vous pouvez envoyer un signal dans htop en appuyant sur F9 en ensuite en choisissant l’un des signaux dans le menu à gauche.

Envoyer un signal est aussi connu comme tuer. C’est parce que kill est un appel système qui peut envoyer un signal à un processus. Il y a un programme /bin/kill qui peut effectuer cet appel système depuis l’espace utilisateur et le signal par défaut à utiliser est TERM qui demandera au processus de se terminer ou en d’autres mots d’essayer de le tuer.

Un signal est juste un nombre. Il est difficile de se souvenir des nombres, donc on leur a donné des noms. Les noms de signaux sont écrits en majuscule et peuvent être préfixés de SIG.

Certains signaux habituellement utilisés sont INT, KILL, STOP, CONT, HUP.

Interrompons un processus en sommeil en lui envoyant un INT connu aussi comme SIGINT ou 2 ou signal d’interruption terminale.

$ kill -INT 10089
[1]+ Interrupt sleep 1000

C’est ce qui arrive quand vous appuyez sur CTRL+C sur votre clavier. bash enverra au processus en premier plan le signal SIGINT comme nous venons de le faire manuellement.

Au fait, en bash, kill est une commande interne, même s’il y a un /bin/kill sur la plupart des systèmes. Pourquoi ? Cela autorise les processus à être tués si la limite des processus que vous pouvez créer est atteinte.

Ces commandes font la même chose :

kill -INT 10089
kill -2 10089
/bin/kill -2 10089

Un autre signal utile à connaître est SIGKILL aussi connu comme 9. Vous pourriez être amené à l’utiliser pour tuer un processus qui ne répondrait pas à vos frénétiques CTRL-C au clavier.

Quand vous écrivez un programme, vous pouvez mettre en place des gestionnaires de signaux qui sont des fonctions appelées quand votre processus reçoit un signal. En d’autres mots, vous pouvez attraper un signal et en faire quelque chose, par exemple, nettoyer et arrêter proprement. Donc envoyer SIGINT (l’utilisateur veut interrompre le processus) et SIGTERM (l’utilisateur veut terminer le processus) ne signifie pas que le processus va être arrêté.

Vous avez peut-être vu cette exception en exécutant un script Python :

$ python -c 'import sys; sys.stdin.read()'
^C
Traceback (most recent call last):
 File "", line 1, in 
KeyboardInterrupt

Vous pouvez dire au noyau d’arrêter de force un processus et ne pas lui laisser une chance de répondre en envoyant le signal KILL.

$ sleep 1000 &
[1] 2658
$ kill -9 2658
[1]+ Killed sleep 1000

D – sommeil non-interruptible (en général en train de réaliser des entrées-sorties)

À la différence du sommeil interruptible, vous ne pouvez pas réveiller ce processus avec un signal. C’est pourquoi tant de gens ont peur de voir cet état. Vous ne pouvez pas tuer ce type de processus parce que tuer signifie ici envoyer des SIGKILL aux processus.

Cet état est utilisé si le processus doit attendre sans interruption ou quand il est attendu qu’un événement se produise rapidement. Comme lire ou écrire depuis un disque. Mais cela devrait arriver en une fraction de seconde.

Nous trouvons une belle réponse sur StackOverflow.

Les processus non-interruptibles sont D’HABITUDE en attente d’entrée/sortie à la suite d’une erreur de page. Le processus/tâche ne peut être interrompu dans cet état, parce qu’il ne peut gérer aucun signal; s’il l’était une autre erreur de page se produirait et il serait de retour là où il était.

Dans d’autres mots, cela pourrait arriver si vous utilisez le système de fichier Network File System (NFS) et cela prend un moment d’y lire ou écrire.

Ou de mon expérience cela peut aussi signifier que des processus sont en train de swapper ce qui signifie que vous n’avez pas assez de mémoire disponible.

Essayons de mettre un processus en état non-interruptible.

8.8.8.8 est un serveur DNS publique fourni par Google. Ils n’ont pas un NFS ouvert là-bas. Mais cela ne va pas nous arrêter.

$ sudo mount 8.8.8.8:/tmp /tmp &
[1] 12646
$ sudo ps x | grep mount.nfs
12648 pts/1 D 0:00 /sbin/mount.nfs 8.8.8.8:/tmp /tmp -o rw

Comment trouver ce qui cause cela ? strace !

Utilisons la commande strace sur la sortie de ps ci-dessus.

$ sudo strace /sbin/mount.nfs 8.8.8.8:/tmp /tmp -o rw
...
mount("8.8.8.8:/tmp", "/tmp", "nfs", 0, ...

Donc l’appel système mount bloque le processus.

Si vous le vous demandez, vous pouvez monter avec l’option intr pour l’exécuter en tant qu’interruptible :

sudo mount 8.8.8.8:/tmp /tmp -o intr.

Z – processus défunt (zombie), terminé mais le retour n’a pas été recueilli par son parent

Quand un processus prend fin via exit et qu’il a toujours des processus enfants, ces processus enfants deviennent des processus zombies.

Je vais écrire un peu de code en C pour montrer cela.

Voici notre programme.

#include 
#include 
#include 

int main() {
 printf("Running\\n");

int pid = fork();

if (pid == 0) {
 printf("I am the child process\\n");
 printf("The child process is exiting now\\n");
 exit(0);
 } else {
 printf("I am the parent process\\n");
 printf("The parent process is sleeping now\\n");
 sleep(20);
 printf("The parent process is finished\\n");
 }

return 0;
}

Installons le compilateur GNU C (GCC).

sudo apt install -y gcc

Compilez-le et ensuite exécutons-le

gcc zombie.c -o zombie
./zombie

Jetons un œil à l’arborescence des processus

$ ps f
 PID TTY STAT TIME COMMAND
 3514 pts/1 Ss 0:00 -bash
 7911 pts/1 S+ 0:00 \\_ ./zombie
 7912 pts/1 Z+ 0:00 \\_ [zombie] 
 1317 pts/0 Ss 0:00 -bash
 7913 pts/0 R+ 0:00 \\_ ps f

Nous avons notre zombie !

Quand le processus parent a fini, le zombie disparaît.

$ ps f
 PID TTY STAT TIME COMMAND
 3514 pts/1 Ss+ 0:00 -bash
 1317 pts/0 Ss 0:00 -bash
 7914 pts/0 R+ 0:00 \\_ ps f

Si vous remplacez sleep(20) par while (true) ; les zombies disparaîtraient immédiatement.

Avec exit, toute la mémoire et les ressources associées sont désallouées afin qu’elles soient utilisées par d’autres processus.

Pourquoi alors garder les processus zombies ?

Le processus parent a une option pour trouver le code de fin du processus enfant (dans un gestionnaire de signal) avec l’appel système wait. Si un processus est endormi, alors il a besoin d’attendre qu’il se réveille.

Pourquoi ne pas simplement le réveiller et le tuer ? Pour la même raison que vous ne jetez pas votre enfant à la poubelle quand vous en êtes fatigué. Des problèmes pourraient survenir.

T – stoppé par un signal de contrôle de tâche

J’ai ouvert deux terminaux et je regarde mes processus utilisateur avec ps u.

$ ps u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
ubuntu 1317 0.0 0.9 21420 4992 pts/0 Ss+ Jun07 0:00 -bash
ubuntu 3514 1.5 1.0 21420 5196 pts/1 Ss 07:28 0:00 -bash
ubuntu 3528 0.0 0.6 36084 3316 pts/1 R+ 07:28 0:00 ps u

Je vais omettre le -bash et les processus ps u dans la sortie ci-dessous.

Maintenant lançons cat /dev/urandom > /dev/null dans un terminal. Son état est R+ ce qui signifie qu’il est en train de s’exécuter.

$ ps u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
ubuntu 3540 103 0.1 6168 688 pts/1 R+ 07:29 0:04 cat /dev/urandom

Appuyez CTRL+Z pour stopper le processus.

$ # CTRL+Z
[1]+ Stopped cat /dev/urandom > /dev/null
$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
ubuntu 3540 86.8 0.1 6168 688 pts/1 T 07:29 0:15 cat /dev/urandom

Son état est maintenant T.

Lancez fg dans le premier terminal pour le relancer.

Un autre moyen pour stopper un processus comme ça est de lancer un signal STOP avec kill pour ce processus. Pour résumer l’exécution du processus, vous pouvez utiliser le signal CONT.

t – stoppé par un debugger durant le suivi de la trace

Commençons par installer le debugger GNU (gdb)

sudo apt install -y gdb

Exécutons un programme qui écoutera les connexions réseau entrantes sur le port 1234.

$ nc -l 1234 &
[1] 3905

Il est endormi, ce qui signifie qu’il est en attente de données depuis le réseau.

$ ps u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
ubuntu 3905 0.0 0.1 9184 896 pts/0 S 07:41 0:00 nc -l 1234

Lançons le debugger et attachons-le au processus avec l’identifiant 3905

sudo gdb -p 3905

Vous verrez que l’état est t, ce qui signifie que le processus est tracé par le debugger.

$ ps u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
ubuntu 3905 0.0 0.1 9184 896 pts/0 t 07:41 0:00 nc -l 1234

Après ce long tour d’horizon des différents états possibles des processus de votre système GNU/Linux, nous nous intéresserons aux autres caractéristiques des processus.

Gravatar de Carl Chenet
Original post of Carl Chenet.Votez pour ce billet sur Planet Libre.