Python / NAS Syno / Discord bot

Répondre
Partager Rechercher
Bonjour,

Je cherche des infos car je suis perdu,

Je suis en train de développer un (modeste) bot pour Discord pour améliorer ma connaissance de Python.

Je travaille en local sur un serveur : le bot fonctionne.
Je l'arrête en "killant" la fenêtre de Python sur Windows il se déconnecte rapidement du serveur.

A terme j'ai l'intention de le laisser tourner sur mon NAS syno

Sur le nas j'ai :
- Installé Python 3
- Récupérer un accès console via puTTy pour mettre à jour les modules Python et faire tourner le script : il fonctionne.

Sauf que quand je ferme l'interface de commande PuTTy, le bot se déconnecte. Normal !

C'est là que je commence à galérer.

Mon bot est composé de fonctions qui permettent d'enregistrer des infos (codes amis, cartes) et de les appeler plus tard

Quand je suis sur l'invité de commande et que je run le bot via le nas la commande !cartes affiche le tableau rempli (données contenues dans le fichier cartes sans extension qui est dans le même répertoire que le script bot.py que je fais tourner) : c'est le comportement attendu.

Quand je crée une tâche planifiée via le planificateur de DSM j'arrive à lancer le bot mais :
- la commande !cartes affiche un tableau vide (que je peux remplir via les commandes) : il ne lit pas le fichier (alors que c'est le même script) cartes situé dans le repertoire courant mais semble ecrire les données entrées quelque part (mais ou ?)
- Je ne sais pas comment arrêter le bot car même en supprimant la tâche planifiée il reste en ligne.

Quelqu'un avec une compréhension plus profonde de Linux pourrait m'aider ?
Je suppose que les fichiers créés dans le script Python sont stockés quelque part ailleurs que dans le repertoire du script que je lance via la tâche planifiée ?
Peut être que je peux prévoir une commande dans le script du bot pour pouvoir l'éteindre depuis discord si je ne peux pas tuer la tâche via le nas ? Comment faire pour tuer celle lancée ?


Edit : je pense qu'il faut que je précise dans mon script l'adresse du dossier contenant les fichiers avec la commande chdir mais je n'arrive pas à mettre un chemin qu'il accepte FileNotFoundError: [Errno 2] No such file or directory: '/volume1/bot'

Dernière modification par Fugo ; 19/04/2019 à 20h52.
Quand tu appelle ton script, au lieu de:
-python /chemin/script.py
mets:
-python /chemin/script.py >> /chemin/script.log 2>&1

ça te générera un fichier de logs qui nous en apprendra surement plus sur ce qui pose problème car ça peut venir de beaucoup de choses.
Ah oui, bah voila l'erreur est la même que sur la commande :

Code:
Traceback (most recent call last):
  File "bot3.py", line 6, in <module>
    from fonctions_bot import *
  File "/volume1/Keepass/bot python/fonctions_bot.py", line 5, in <module>
    os.chdir("/volume1/keepass/")
FileNotFoundError: [Errno 2] No such file or directory: '/volume1/keepass/'

Je suis persuadé que mon problème est lié au dossier de travail :

Quand je ne mets pas la ligne

Code:
os.chdir("/volume1/keepass/")
dans le code, il tourne, mais il n'utilise pas les fichiers présents dans le repertoire de bot.py

Je pense qu'il se charge avec un chemin différent si je ne peux pas lui préciser le repertoire de travail mais je n'arrive pas à corriger la syntaxe du chemin absolu sur le nas qui est le suivant :
/volume1/Keepass/bot python

Bon ben, premier problème solved : !

Une erreur dans l'écriture du chemin (une majuscule oubliée)


Par contre, second problème toujours persistant :

Comment faire pour arrêter un bot qui tourne sur le nas ?

Je ne cherche pas spécialement à le rendre down, mais à pouvoir le shut down pour faire des MAJ sur le code quand j'ai besoin.

Dernière modification par Fugo ; 19/04/2019 à 22h31. Motif: Auto-fusion
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés