Pages : 1
#1 Le 04/05/2017, à 00:33
- Dacan
[RESOLU] Problème Cron
Bonjour,
J'essaie de planifier le lancement d'un programme codé en C# (un .exe), bon si j'ai bien comrpris, on ne peut pas lancer "mono" directement depuis Cron donc j'ai crée un petit script .sh mais rien à faire, le bidule ne se lance pas...
Crontab semble fonctionner, j'ai testé sans souci un "*/1 * * * * echo "plop" > /..//". Le script fonctionne aussi si je le lance manuellement.
Voici le contenu de mon bash :
#!/bin/sh
/usr/bin/mono /home/desktop/Bureau/TestSuppAuto/30s.exe "$@"
et dans crontab :
*/1 * * * * /home/desktop/Bureau/TestSuppAuto/delete.sh
Toute aide serait vraiment appréciable, merci.
Dernière modification par Dacan (Le 04/05/2017, à 22:22)
Hors ligne
#2 Le 04/05/2017, à 08:03
- credenhill
Re : [RESOLU] Problème Cron
hello
récupérer des messages d'erreur
*/1 * * * * /home/desktop/Bureau/TestSuppAuto/delete.sh > /tmp/log 2>&1
Hors ligne
#3 Le 04/05/2017, à 10:10
- Sciensous
Re : [RESOLU] Problème Cron
delete.sh est bien en mode +x ?
(executable)
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#4 Le 04/05/2017, à 16:43
- Dacan
Re : [RESOLU] Problème Cron
Bonjour, merci pour vos réponses. Voici le contenu du log :
Unhandled Exception:
System.IO.DirectoryNotFoundException: Directory './Universe/Vessels' not found.
at System.IO.Directory.ValidateDirectoryListing (System.String path, System.String searchPattern, System.Boolean& stop) [0x00000] in <filename unknown>:0
at System.IO.Directory.GetFileSystemEntries (System.String path, System.String searchPattern, FileAttributes mask, FileAttributes attrs) [0x00000] in <filename unknown>:0
at System.IO.Directory.GetFiles (System.String path, System.String searchPattern) [0x00000] in <filename unknown>:0
at System.IO.Directory.GetFiles (System.String path) [0x00000] in <filename unknown>:0
at DeleteFichiers.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.IO.DirectoryNotFoundException: Directory './Universe/Vessels' not found.
at System.IO.Directory.ValidateDirectoryListing (System.String path, System.String searchPattern, System.Boolean& stop) [0x00000] in <filename unknown>:0
at System.IO.Directory.GetFileSystemEntries (System.String path, System.String searchPattern, FileAttributes mask, FileAttributes attrs) [0x00000] in <filename unknown>:0
at System.IO.Directory.GetFiles (System.String path, System.String searchPattern) [0x00000] in <filename unknown>:0
at System.IO.Directory.GetFiles (System.String path) [0x00000] in <filename unknown>:0
at DeleteFichiers.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0
Le programme n'arrive donc pas à accéder au dossier "Vessels", mais comme je l'ai dit précédemment, en le lançant manuellement ça fonctionne...
Dernière modification par Dacan (Le 04/05/2017, à 16:47)
Hors ligne
#5 Le 04/05/2017, à 17:08
- Watael
Re : [RESOLU] Problème Cron
le chemin relatif utilisé l'est par rapport à l'emplacement du script.
si tu lances le script ainsi
./tonScript
et que le fichier est dans le même répertoire, bien sûr ça fonctionnera.
mais si tu te déplaces dans la hiérarchie de ton répertoire personnel, dnas un autre répertoire que celui où est le script, ça devrait alors ne plus fonctionner.
suis-je bien clair, ici ?
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#6 Le 04/05/2017, à 17:43
- Dacan
Re : [RESOLU] Problème Cron
L'emplacement du script est pourtant au même endroit que mon ".exe".
C'est pas au niveau de mono que ça déconne ? Parce que c'est l'exe qui est supposé vérifier le contenu de "./Universe/Vessels" et le log indique que ça coince précisément là.
Hors ligne
#7 Le 04/05/2017, à 18:20
- jplemoine
Re : [RESOLU] Problème Cron
Attention : je ne pense pas que ce soit le répertoire dans lequel est l'exécutable mais plutôt celui par défaut (et donc certainement /root : le home de root).
Je pense qu'il vaut mieux passer par un chemin absolu en récupérant le chemin de l'executable.
Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.
Hors ligne
#8 Le 04/05/2017, à 18:59
- Watael
Re : [RESOLU] Problème Cron
./Universe/Vessels est un chemin relatif par rapport à l'exécutable.
quand tu exécutes le programme depuis le même emplacement ça ne pose pas de problème.
si tu changes de répertoire (cd $HOME par exemple), tu vas exécuter le programme par ./Bureau/TestSuppAuto/delete.sh; a priori tu devrais obtenir le même message.
mets-toi au clair à propos des chemins absolu et relatif.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#9 Le 04/05/2017, à 19:06
- Dacan
Re : [RESOLU] Problème Cron
L'"exe" se lance donc... "which mono" me donne bien : /usr/bin/mono/
Et les chemins indiqués sont bien absolus, non ?
Hors ligne
#10 Le 04/05/2017, à 19:10
- Watael
Re : [RESOLU] Problème Cron
le message d'erreur fait état de ./Universe/Vessels qui est un chemin relatif.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#11 Le 04/05/2017, à 19:50
- jplemoine
Re : [RESOLU] Problème Cron
C'est le cron qui le lance : on ne sait donc pas quel est le chemin par défaut.
Le plus simple est de transformer /Universe/Vessels en un chemin absolu en récupérant le chemin de l’exécutable.
Je ne connais pas (plus) l'instruction en C mais je suis quasi sûr qu'elle existe.
Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.
Hors ligne
#12 Le 04/05/2017, à 22:22
- Dacan
Re : [RESOLU] Problème Cron
Problème réglé en modifiant la commande dans crontab, du coup pas besoin d'utiliser de script et je peux laisser des chemins relatifs dans le code de mon programme. Ca marchait aussi avec le bash mais en recompilant le programme avec des chemins absolus.
*/1 * * * * cd /home/desktop/Bureau/TestSuppAuto/ && mono 30s.exe
Merci pour votre aide.
Hors ligne