4 votes

Cron ne peut pas exécuter gnome-terminal

J'ai configuré le cron suivant dans ma machine locale.

* * * * * /bin/bash -c /home/JSX/Stuff/J/login-check/open-console.sh

Le contenu de open-console.sh est le suivant : -

#! /bin/sh
gnome-terminal --full-screen --hide-menubar -e /home/JSX/Stuff/J/login-check/handle-user.sh

Il est censé ouvrir un autre sh script dans le terminal. Mais rien ne se passe. Y a-t-il autre chose que je doive faire ? Comme redémarrer un service ou quelque chose pour que la tâche cron commence à fonctionner ?

*** Les chemins absolus donnés dans les fichiers sont corrects. Lorsque j'ai entré la commande /bin/bash -c /home/JSX/Stuff/J/login-check/open-console.sh directement dans le terminal, ça a marché.

10voto

January Points 33673

Cron n'a aucune idée de l'emplacement de l'affichage actuel (de son point de vue, il peut y en avoir plusieurs en cours d'exécution), il ne peut donc pas -- facilement -- démarrer un terminal graphique. Si vous êtes le seul utilisateur de la machine avec une seule session X, vous pouvez essayer de définir votre variable DISPLAY

export DISPLAY=:0.0

sur open-console.sh mais je ne suis pas sûr que cela fonctionne.

L'objectif principal de cron est de lancer des services non interactifs qui fonctionnent en arrière-plan à des moments précis. Les autres tâches doivent être gérées avec dbus et ConsoleKit, mais c'est un peu plus compliqué, voir この質問 .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X