1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #!/bin/bash #VPN_HOME="/home/roid/vpn" VPN_HOME="/home/vpn" if [ "$USER" != "root" ]; then echo "This script must be run as root" 1>&2 exit 1 fi netstat -ntpl | grep LISTEN | grep [0-9:]:${1:-80}" " -q ; IS_EXIST80=$? netstat -ntpl | grep java | grep LISTEN | grep [0-9:]:${1:-80}" " -q ; IS_JAVA80=$? if [ $IS_EXIST80 -eq 0 ] ; then if [ $IS_JAVA80 -eq 0 ] ; then netstat -ntpl | grep java | grep LISTEN | grep [0-9:]:${1:-80}" " echo "VPN Client already running !!" exit 0 else netstat -ntpl | grep LISTEN | grep [0-9:]:${1:-80}" " echo "80 port already used by other process !!" exit 1 fi fi CUR_DIR=`pwd` cd $VPN_HOME ps aux | grep java | grep vpn-client.jar | awk '{print $2}' | xargs kill 2>/dev/null sleep 1 nohup java -jar vpn-client.jar client.conf >/dev/null 2>&1 & cd $CUR_DIR ps -ef | grep java | grep vpn-client.jar exit 0 | cs |
예전에 짠 것인데도.. 내가 짜고도 좀 헷갈림.
그래도.. 대체로 기억에 있으니 알고 싶은 부분 질문하면 답해줌.
일단 특이하게 짜둔 부분 중에 볼만한 부분은..
$? 를 통해서 바로 직전에 실행한 프로그램의 종료 코드를 받을 수 있음 ( java나 C의 main return값 또는 sh등의 exit값 )
여러 잡다 체크 ( netstat -p를 이용해서 네트워크를 사용중인 프로세스까지 읽어들이고 )
마지막으로 다음 프로그램을 실행하는 코드.
ㅇㅅㅇ
이것 확장판도 있는데.. 뭣때문에 만들었는지도 다 까먹었음.
ㅇㅅㅇ
님 파딱받으쉴?
던지셈 ㅇㅅㅇ
형림!!! 애들노는데서 뭐하는 짓입니까!!!!!!!!!