Forum Linux.général Script ne se comportant pas pareil selon le mode de lancement

Posté par . Licence CC by-sa
Tags :
2
30
avr.
2017

Alors voilà. J’ai un script Python qui ne fork pas mais qui ne se termine pas (while true { do things; sleep }), lorsque je le lance en tant qu’utilisateur ainsi :

$ /path/to/python /path/to/script.py

le programme s’exécute bien au premier plan. Par contre, lorsque que je le lance ainsi (en étant root) :

# su - c '/path/to/python /path/to/script.py' user

le programme fork… Je ne comprends pas pourquoi et c’est pour ça que je fais appel à vous.

Je (...)

Forum Programmation.shell Plomberie unixienne

Posté par . Licence CC by-sa
3
27
fév.
2017

Bonjour,

Je cherche à alimenter une base RRD avec la sortie de la commande vmstat (sous Linux). J’ai créé ma base RRD et je peux l’alimenter manuellement, je n’ai pas de problème de ce côté là.

La commande suivante me sort un enregistrement avec lequel je devrais pouvoir alimenter ma base, toutes les secondes. J’utilise le caractère nul comme séparateur, ce n’est probablement pas une nécessité dans mon cas (donnée RRD…) mais j’ai de toute façon le même comportement en (...)

Forum Programmation.python Communication inter-processus

Posté par . Licence CC by-sa
1
21
jan.
2017

Bonjour,

Je dois disposer d’un moyen de communiquer entre plusieurs processus. Typiquement entre un processus client interactif et un processus serveur en tâche de fond.

Le process client doit pouvoir non seulement envoyer les signaux standards (SIGINT, SIGTERM, etc…) mais aussi n’importe quel "message".

Avant d’essayer d’ajouter du code à mon projet j’ai fait un petit test afin de bien cerner le problème.

Je suis arrivé à la solution suivante, que je soumets à votre sagacité… Est-ce la bonne manière (...)

Forum Programmation.python Multiprocessing

Posté par . Licence CC by-sa
4
23
déc.
2016

Bonjour,

Afin de me former à l’utilisation de la bibliothèque multiprocessing de Python3 j’écris un peu de code, pour mettre en pratique… Il y a des concepts que je ne comprends pas bien, d’où ce post.

Pour mon exemple j’ai imaginé le problème suivant : une crèche, qui possède des nourrissons et des dortoirs, doit faire faire la sieste à tous les nourrissons. La sieste de l’ensemble des nourrissons d’un dortoir est terminée lorsque le dernier des nourrissons a fini (...)

Forum Programmation.shell find, sort & nul char

Posté par . Licence CC by-sa
Tags :
2
30
nov.
2016

Bonjour,

J’ai un script qui stock l’état des permissions d’un répertoire dans un fichier. Pour comparer l’état courant avec l’état sauvegardé je procède ainsi :

function check() {

    diff -aBy <(cat $1) <(store $2) | tr "\000" " " |egrep '\s\||>|<\s'
}

$1 est mon fichier dans lequel sont stockés les permissions
$2 est le répertoire concerné

Le fichier est généré ainsi (c’est la fonction 'store' utilisée ci-dessus) :

function store()
(...)

Forum général.général Manipulation des permissions Unix

Posté par . Licence CC by-sa
Tags :
2
30
oct.
2016

Ce post fait suite à ma question sur Git.

En effet, Git n’enregistre pas les permissions Unix des fichiers qu’il suit, excepté le droit d’exécution. Je sais qu’il existe des sur-couches à Git pour répondre à ce genre de problématique (Git possède un mécanisme de hooks) mais je suis arrivé à la conclusion que la sauvegarde des droits Unix était un problème plus général qui ne concerne pas seulement Git.

Il y a plusieurs autres cas de figure (...)

Forum général.général Git

Posté par . Licence CC by-sa
Tags :
3
26
oct.
2016

Je découvre Git et je suis maintenant en mesure d’effectuer les opérations les plus courantes, cependant il y a encore des subtilités qui m’échappent. Notamment celle-ci : la création d’un dépôt de référence (bare repository) et le premier commit depuis un « client ».

J’ai bien saisi la différence entre un dépôt "bare" et un dépôt de travail (working tree), seulement il semblerait qu’il y ait deux méthodes et je n’arrive pas à comprendre toutes les implications.

Tout d’abord, la création de (...)

Forum Linux.général Volume chiffré

Posté par . Licence CC by-sa
Tags :
4
27
juil.
2016

Bonjour,

Je voudrais stocker quelques informations dans mon $HOME et que ces informations restent privées. Or quiconque est en mesure de se connecter en root peut bien évidemment accéder à mon $HOME. Je me suis donc dit que je pouvais créer un volume chiffré (j’ai en effet moi aussi un accès root sur cette machine). Je ne l’avais jamais fait, c’est vraiment très simple.

Je vous soumets donc la méthode à laquelle je suis arrivé, pour avoir votre avis et (...)

Forum Programmation.shell Problème avec getopts ?

Posté par . Licence CC by-sa
Tags :
1
24
juil.
2016

Bonjour,

Je rencontre un comportement que je n’arrive pas à m’expliquer.

Le script est interprété par /bin/sh et utilise getopts. Lorsque je fais ceci :

$ ./check_files.sh -d /tmp -td -x*a*

Mon argument est bien repris (à la fin) :

+ find /tmp/geany_socket.9912fb56 /tmp/gpg-OBxSqk /tmp/log /tmp/ssh-bfbl8kSNDM8o /tmp/systemd-private-0a769fff0c124fed8a42ec56733ade46-systemd-timesyncd.service-09Wbx1 /tmp/. /tmp/.. /tmp/.ICE-unix /tmp/.Test-unix /tmp/.X0-lock /tmp/.X11-unix /tmp/.XIM-unix /tmp/.font-unix /tmp/.xfsm-ICE-BILXKY -prune -type d ! -name *a*

Seulement si je remplace le 'a' pour un 'i' :

$ ./check_files.sh -d /tmp -td -x*i*

j’obtiens ceci (...)

Forum Programmation.shell Bash, ksh, POSIX et compatibilité

Posté par . Licence CC by-sa
Tags :
4
11
juil.
2016

Bonjour,

J’étais en train d’écrire un script pour AIX en Korn shell et étant donné que c’est un script très simple je me suis dit : « tiens mais pourquoi pas rendre mon script compatible également Linux ? » et là je tombe sur un os… :/

Même avec un shell compatible POSIX de chaque côté (#!/usr/bin/env sh), je me rends compte que la commande echo ne fonctionne pas de la même manière sur AIX et Linux :(

Sous AIX les (...)

Forum général.cherche-logiciel Réalisation de diagramme

Posté par . Licence CC by-sa
Tags :
1
22
avr.
2016

Il m’arrive de devoir réaliser des diagrammes UML, pour ça j’utilise Dia. Ce logiciel permet de réaliser de nombreux types de diagrammes, par exemple Grafcet…

Or je suis surpris de voir que la dernière version de ce logiciel date de 2011. Alors certes je n’ai jamais rencontré de bug, le logiciel semble abouti mais ça m’interpelle tout de même.

Le GitHub du projet est actif mais je m’étonne qu’il n’y ait pas eu de release depuis 2011. Connaîtriez-vous une (...)

Forum Programmation.python Programmer un daemon

Posté par . Licence CC by-sa
Tags : aucun
1
7
sept.
2015

Au cas où vous auriez la bonté d’aider une moule autodidacte qui apprend Python sur le tas je vous expose mon problème…

Le contexte :

J’ai un script Python3 qui récupère les posts du bouchot pour les stocker dans une base SQLite, actuellement si je veux que ce script tourne de manière régulière je lui colle une entrée dans ma crontab, ça juste marche mais ça ne me semble pas propre. Donc ce que je voudrais faire c’est que ce (...)

Forum Programmation.python JSON how to get the data I want.

Posté par . Licence CC by-sa
Tags :
1
2
sept.
2015

Le but du truc : récupérer le début d’une définition Wikipédia d’un terme quelconque.

Alors voila comment je m’y prends

#!/usr/bin/env python3

"""AskWikipédia.py: Ask Wikipédia the définition of a shit."""
__author__ = "M4rotte"
__copyright__ = "Copyright 2015, Institut Marotte pour un Mouling de Qualitäy"
__license__ = "GPL"
__version__ = "0.1"

import sys                               # SYS module (used for argument management)
import requests                          # HTTP Requests
import html.parser                       # HTML Parser (not used for anything here but imported just for fun)
import
(...)

Forum Programmation.python J’arrive pas à poster sur la tribune :(

Posté par . Licence CC by-sa
1
28
août
2015
#!/usr/bin/python3
import requests

#print (requests.get("https://linuxfr.org/board/index.xml").text)

mydata = {"Content-Type" :"application/x-www-form-urlencoded;", "Cookie" :"linuxfr.org_session=amdRVnQyQ******z09--603b6d541118c663c8cf7a7efc653fc6ec72c329; https=1", "Host" : "linuxfr.org"}

yo = requests.post("https://linuxfr.org/board", params=mydata, data="board[message]=test")

print (yo.status_code)

me sort :

422

(422 Unprocessable Entity (WebDAV; RFC 4918)
The request was well-formed but was unable to be followed due to semantic errors)

Any kind of help would be appreciated :/

Notez que j’ai mis des (...)