Linux에서 자바 프로그램을 정시에 실행하는 방법

2645 단어
linux 아래에서 자바 프로그램을 실행합니다. 일반적인 상황에서 자바 파일로 포장한 다음, linux 아래에 놓고 스크립트로 그것을 실행합니다.
하나, 자바 프로젝트를 포장합니다.일반적으로 eclipse와netbeans로 프로젝트를 직접 jar로 포장하면 됩니다. 그리고jar를 같은 디렉터리 아래의lib 라이브러리 폴더와 함께 linux 폴더 아래에 두십시오.여기/opt/ftpcounter 밑에 놓을게요.이 프로그램의 역할은 어떤 ftp의 파일 정보를 읽는 것입니다.
2,linux 아래의 셸 스크립트, 내 ftpcounter.sh를 예로 들면, 내가 실행하고자 하는 것은 FtpCounter이다.jar.
4
#!/bin/bash

#      
export LANG="en_US.UTF-8"
export JAVA_HOME=/usr/javak1.6.0_31
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOMEb/dt.jar:$JAVA_HOMEb/tools.jar

FTP_HOME=/opt/ftpcounter
CONFIG=$FTP_HOME/configer.properties

echo "【`date +%Y-%m-%d_%H:%M:%S`】        ......"
sed -i "/OVER/ s/=.*/=0/g" $CONFIG
cd $FTP_HOME && echo "    :$FTP_HOME"
java -jar $FTP_HOME/FtpCounter.jar && echo "  FtpCounter.jar  !" && sed -i "/OVER/ s/=.*/=1/g" $CONFIG || echo "  FtpCounter.jar  !"
echo "【`date +%Y-%m-%d_%H:%M:%S`】        ,      ."
우선 자바의 환경 변수를 가져와야 한다. 중국어를 실행할 때 인코딩이 어지럽지 않도록 하려면 중국어 인코딩도 가져와야 한다.이 내용을 가져오는 것은crontab 정시 프로그램이 스크립트를 호출할 때 시스템 환경 변수가 불러오지 않았기 때문입니다.
그 다음에jar의 명령을 실행하는 것은java-jar가jar 파일 이름이면 됩니다. 이 명령은 크로스플랫폼입니다.
셋째, 모니터링 프로그램, linux 아래에서 자바 프로그램을 실행할 때 가끔 영문도 모른 채 자동으로 멈출 수 있습니다. 다음은 모니터링 스크립트를 추가했습니다.ftpcounterwatch라고 합니다.sh.
4
#!/bin/bash

FTP_HOME=/opt/ftpcounter
CONFIG=$FTP_HOME/configer.properties

while [ `cat $CONFIG | awk -F'=' '/OVER/ {print$2}'` -eq 0 ]
do
        FTPCOUNTERPID=`pgrep ftpcounter.sh`
        FTPCOUNTERJARPID=`ps -ef | grep  FtpCounter.jar | grep -v grep | awk '{print $2}'`
        if [ a$FTPCOUNTERPID != "a" ];then
                echo $FTPCOUNTERPID
                kill -9 $FTPCOUNTERPID && echo "【`date +%Y-%m-%d_%H:%M:%S`】        >,  ftpcounter.sh    !"
        fi
        if [ a$FTPCOUNTERJARPID != "a" ];then
                echo $FTPCOUNTERJARPID
                kill -9 $FTPCOUNTERJARPID && echo "【`date +%Y-%m-%d_%H:%M:%S`】       
 ,  FtpCounter.jar  !"
        fi
        sh $FTP_HOME/ftpcounter.sh &
        sleep 5m
done
4, 타이머 설정
linux 단말기에서crontab-e를 입력하면 타이머의 설정vi인터페이스를 조정할 수 있습니다.다음 문장을 입력하시면 됩니다.
4
15 9 * * * sh /opt/ftpcounter/ftpcounter.sh >> /opt/ftpcounter/ftpcounter.log
20 9 * * * sh /opt/ftpcounter/ftpcounterwatch.sh >> /opt/ftpcounter/ftpcounter.log
위의 뜻은 9시 15분에jar의 셸 스크립트를 실행하고 20분구에서 ftpcounter를 모니터링한다는 것이다.sh 및 FtpCounter.jar의 프로세스가 아직 있는지 여부입니다. 프로그램이 끊겼으면 시내에 들어가서 죽이고 다시 실행합니다.

좋은 웹페이지 즐겨찾기