#1 Le 17/01/2008, à 21:13
- kaer
Design d'un espece de robot (client internet autonome)
Bonjour,
Je prévois de développer un client internet autonome (une application qui fera quelques taches automatiques sur internet). Le but de ce post n'est pas l'application elle-même mais son environement cad un Linux, plus que probablement Ubuntu ou une variante de Debian (tout simplement pour ne réapprendre que le minimum. L'application :
- sera lancée automatiquement au boot (la machine elle-même sera lancée manuellemnt ou par un programmateur à moins que quelqu'un aie une meileure idée).
- s'arretera quand soit:
- les taches seront finies
- elle recevra une demande d'arret non-prioritaire (elle finira la tache en cours et s'arretera)
- elle recevra une demande d'arret prioritaire (arret sur le champs)
- provoquera un shutdown de la machine aprés son arret.
Concernant le développement de l'application elle-même, j'ai les idées relativement claires. Par contre pour les questions évoquées ci-dessus, je n'ai pas d'expérience et je vous demande votre avis. Je me demande en particulier:
- quelle distro de Linux choisir ?
- comment faire en sorte de pouvoir interrompre l'application volontairement ? L'appli écoute sur un port ? lis des mails ? est un client msn, jabber ? ... ça doit être utilisable par n'importe qui sans rien installer d'exotique et à partir de n'importe quelle plateforme (Linux, Windows, mac). L'appli elle-même tournera dans une linux box sans clavier ni écran (sauf pour l'installation).
Merci d'avance pour toutes vos idées (lachez-vous ;-) )
Hors ligne
#2 Le 17/01/2008, à 21:22
- mulima
Re : Design d'un espece de robot (client internet autonome)
un script bash lance un while infini
il lit un fichier dans le dossier tmp qui contient les valeurs
1 - les taches sont finies fait un shutdown
2 - si ps -ef ·|grep ma_tache ne renvoir rien => shutdown
3 - poweroff tout de suite
les valeurs a mettre dans ce fichier peuvent etre ecrite par un script php accessible depuis n'importe quel OS via un server web
Hors ligne
#3 Le 18/01/2008, à 11:43
- Aurel34
Re : Design d'un espece de robot (client internet autonome)
- quelle distro de Linux choisir ?
une debian/ubuntu fait très bien l'affaire
- comment faire en sorte de pouvoir interrompre l'application volontairement ? ...
avec les signaux si tu es sur la plate-forme.
sinon un petit démon qui écoute un port me parait une bonne solution. Tu peux coder ça très facilelement en utilisant les fonctionnalités de inetd/xinetd (en gros tu modifies /etc/inetd.conf et il renvoie tout ce qu'il reçoit en entrée vers l'entrée standard de ton programme, donc tu codes comme si tu lisais la console...).
sinon tu as pensé à quoi comme solution ? en C ? Perl/LWP ?
#4 Le 18/01/2008, à 21:14
- kaer
Re : Design d'un espece de robot (client internet autonome)
sinon tu as pensé à quoi comme solution ? en C ? Perl/LWP ?
Sauf argument massue pour un autre langage, ce sera en python que je connais un peu. Et si j'ai des questions d'implémentation, j'irai probablement sur fr.comp.lang.python. Mais avant j'essaie de bien délimiter ce que je dois implémenter dans l'appli et ce qui est du ressors de l'OS. D'ou ce fil.
Merci déjà pour vos idées à tous les deux. Comme je m'y attendais, je reçois des idées auxquelles je ne m'attendais pas ;-)
Hors ligne
#5 Le 18/01/2008, à 22:22
- obiwankennedy
Re : Design d'un espece de robot (client internet autonome)
Tu peux toujours envoyer un signal à ton programme en te connectant sur ta machine par ssh quoi.
Dans mes logiciels, j'écris ton nom.
SGNGD: SvgGd is Not GD
Rolisteam
Hors ligne
#6 Le 19/01/2008, à 08:38
- mulima
Re : Design d'un espece de robot (client internet autonome)
ça doit être utilisable par n'importe qui sans rien installer d'exotique et à partir de n'importe quelle plateforme
donc pas de ssh ...
dommage !
Hors ligne
#7 Le 19/01/2008, à 11:55
- Aurel34
Re : Design d'un espece de robot (client internet autonome)
Sauf argument massue pour un autre langage, ce sera en python que je connais un peu. Et si j'ai des questions d'implémentation, j'irai probablement sur fr.comp.lang.python. Mais avant j'essaie de bien délimiter ce que je dois implémenter dans l'appli et ce qui est du ressors de l'OS. D'ou ce fil.
ok je vois. C'est sûr que si tu connais un langage il vaut mieux partir dessus (je suis fan de Perl mais ça ne s'apprend pas du jour au lendemain...)
juste une idée en passant: tu as envisagé des feuilles xslt ? à‡a te permettrait d'extraire l'info que tu veux (c'est très puissants sur des langages "type XML") et c'est surtout très souple si tes pages viennent à changer par exemple.
#8 Le 21/01/2008, à 11:10
- kaer
Re : Design d'un espece de robot (client internet autonome)
ok je vois. C'est sûr que si tu connais un langage il vaut mieux partir dessus (je suis fan de Perl mais ça ne s'apprend pas du jour au lendemain...)
Moi je suis plutôt fan de Python, je connais aussi java que je trouve (d'expérience) affreusement verbeux, je suis aussi interessé par le C pour le bas niveau ou les perfs et par ruby pour RoR (et ne pas mourir idiot ... quoiqu'alors c'est plutôt Lisp ou Scheme qui devraient m'interesser). Mais arretons-là ce qui pourrait ressembler à un xiéme débat sur les langages.
juste une idée en passant: tu as envisagé des feuilles xslt ? Ça te permettrait d'extraire l'info que tu veux (c'est très puissants sur des langages "type XML") et c'est surtout très souple si tes pages viennent à changer par exemple.
Là aussi il y a tant à dire. je suis un ardent partisan de principes tels que KISS (Keep It Simple and Stupid) et donc je n'utilise XML que quand je dois (pour mes données hiérarchisées, je préferre yaml). En bref, je n,'implémente que le minimum pour que ça marche dans un code lisible et facilement maintenable et refactorisable.
Pour en revenir à nos moutons ou plutôt nos pingouins, je me demandais dans le cas d'une appli qui démarre au start-up: vaut-il mieux
- en faire un daemon et donc, sauf erreur, lui donner les droits du root ?
- en faire une appli appartenant à un user "virtuel" et alors comment faire pour lancer cette appli sous le bon user ?
Merci d'avance. Bonne semaine à tous.
Hors ligne