przekierowanie wyjścia w crontab

0

Mam skrypt powłoki do monitorowania statystyk tabel i aplikacji Java. Działa dobrze, gdy uruchamiam ręcznie. Ale jeśli umieszczę go w crontab, utknie, jeśli nie przekieruję jego wyjścia za pomocą export displaypolecenia. Wiesz, dlaczego?

ivcode
źródło
Czy masz na myśli export DISPLAY? To brzmi jak aplikacja X Windows, więc musi znać serwer X, aby otworzyć okno. DISPLAYjest zwykle ustawiany podczas logowania do GUI, a cron nie jest w sesji GUI.
Barmar
Byłoby to pomocne, jeśli opublikowałeś pełne polecenie.
Barmar
*/2 * * * * export DISPLAY=:1.0 && gnome-terminal -x /path/script.sh
oto
Jak oczekujesz, że gnome-terminal, którego jedynym celem jest otwarcie okna emulatora terminala na ekranie, będzie działał bez ustawiania WYŚWIETLACZA?
Barmar
cóż, otworzyłem wyświetlacz „1” i cronjob wydaje się działać. Problem w tym, że jeśli dodam cronjob dla tego samego skryptu bez kierowania go do wyświetlacza (np .: * / 2 * * * * /path/script.sh), skrypt utknie w trakcie wykonywania
ivcode

Odpowiedzi:

0

Poleceniem powinno być:

DISPLAY=:1.0 gnome-terminal -x /path/script.sh

Ponieważ gnome-terminal jest aplikacją X, używa DISPLAYzmiennej środowiskowej do łączenia się z serwerem X i wyświetlania jego okien. Aby ustawić zmienną środowiskową tylko na czas trwania pojedynczego polecenia, umieść przypisanie zmiennej na początku wiersza polecenia.

Barmar
źródło