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를 이용해서 네트워크를 사용중인 프로세스까지 읽어들이고 )

마지막으로 다음 프로그램을 실행하는 코드.

ㅇㅅㅇ


이것 확장판도 있는데.. 뭣때문에 만들었는지도 다 까먹었음.

ㅇㅅㅇ