Uruchamianie pliku javy w cron

1

Witam,
Obecnie plik javy uruchamiam w konsoli:

cd /var/www/html/java/folder ; java -cp ".:Java-WebSocket-1.5.1.jar:json-20201115.jar:logback-classic-1.1.3.jar:logback-core-1.1.3.jar:slf4j-api-1.7.7.jar:slf4j-simple-1.8.0-beta4.jar:bin/" -Dfile.encoding=UTF-8  webSocks.Main

Jednak chcę ten sam plik uruchamiać w crontab o danej godzinie, coś takiego nie działa:

23 23 30 09 * java /var/www/html/java/folder ; java -cp ".:Java-WebSocket-1.5.1.jar:json-20201115.jar:logback-classic-1.1.3.jar:logback-core-1.1.3.jar:slf4j-api-1.7.7.jar:slf4j-simple-1.8.0-beta4.jar:bin/" -Dfile.encoding=UTF-8  webSocks.Main

Jak to poprawić aby zadziałało uruchamianie z crona?

3
  1. Możliwe, że proces, uruchomiony z crona, działa bez ustawionych zmiennych środowiskowych (JAVA_HOME, PATH etc.), chyba, że masz ustawione w profilu powłoki.
  2. Wykonujesz java /var/www/html/java/folder? Możliwe, że powinno być cd /var/www/html/java/folder.
  3. Harmonogram ustawiłeś na "30 września 23:23" - to za rok kolejne uruchomienie?
4

Faktycznie jest babol.

23 23 30 09 * java /var/www/html/java/folder ; 

Jeśli mamy kilka poleceń i chcemy sprawdzić co nie działa przy odpalaniu z crona, można wrzucić te polecenia do oddzielnego pliku. Np.

#!/bin/bash

#przekierowanie wyjścia do pliku
exec >> /tmp/log.txt
exec 2>&1

#drukowanie środowiska
env

#inne polecenia
cd folder
java Main

Potem w cronie

23 23 30 09 * /pelna/sciezka/pliku.sh

Problemem może być to, że cron odpala polecenia z innym środowiskiem, niż normalny użytkownik z konsoli. Jeśli chcemy skorzystać z pliku ~/.profile, w swoim skrypcie używamy polecenia source:

source /home/user/.profile

Można jeszcze ewentualnie bawić się z poleceniem exec, ale tu raczej nie będzie potrzeby.

0
yarel napisał(a):
  1. Możliwe, że proces, uruchomiony z crona, działa bez ustawionych zmiennych środowiskowych (JAVA_HOME, PATH etc.), chyba, że masz ustawione w profilu powłoki.
  1. Wykonujesz java /var/www/html/java/folder? Możliwe, że powinno być cd /var/www/html/java/folder.
  2. Harmonogram ustawiłeś na "30 września 23:23" - to za rok kolejne uruchomienie?
  1. Faktycznie z cd działa prawidłowo
  2. W tym czasie to testowałem to taki czas podałem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1