Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 04/05/2017, à 01: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, à 23:22)

Hors ligne

#2 Le 04/05/2017, à 09: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, à 11: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, à 17: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, à 17:47)

Hors ligne

#5 Le 04/05/2017, à 18: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, à 18:43

Dacan

Re : [RESOLU] Problème Cron

L'emplacement du script est pourtant au même endroit que mon ".exe".
Chemin
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, à 19: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.


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#8 Le 04/05/2017, à 19: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, à 20: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, à 20: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, à 20: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.


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#12 Le 04/05/2017, à 23: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. smile

Hors ligne