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?


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.