PPPCTL(8)

명칭
pppctl - PPP 제어 프로그램

서식
pppctl [-v] [-t n] [-p passwd] [host:] Port | LocalSocket [ command[;command]...]

해설
이 유틸리티는 ppp(8) demon의 명령행으로부터의 제어 수단을 제공합니다. 기본적인 사용법은, 실행중의 demon를 제어하는 단순한 스크립트를 간단하게 쓸 수 있도록(듯이) 하는 것입니다.

pppctl 유틸리티는, ppp demon가 listen 하고 있는 소켓을 나타낸다 적어도 하나의 인수를 필요로 합니다. 상세한 것에 대하여는, ppp 명령의 ‘set server’ (을)를 참조해 주세요. 소켓이 선두에 '/'를 포함하고 있으면(자), AF_LOCAL 소켓으로서 다루어집니다. 코론을 포함하고 있으면(자) host:port 의 조로서 다루어져 그 이외는 단지 로컬 머신 (127.0. 0.1)의 TCP 포트를 지정한 것으로 간주해집니다. DNS 검색을 피하고 싶은 경우나, /etc/services 안으로 지정된 포트의 엔트리가 없는 경우에는, host (와)과 port 에는 숫자로 지정할 수가 있습니다.

나머지의 인수는 모두, ppp demon에게 보내진다 (복수의) 명령 (을)를 형성하기 위해서 연결됩니다. 세미콜론 캐릭터는 명령 딜리미터로서 다루어져 하나의 ‘세션’ 그리고 복수의 명령 (을)를 지정하는 것이 가능합니다. 예를 들면:

    pppctl 3000 set timeout 300\; show timeout

대부분의 쉘에서는 ';'는 특수 캐릭터로서 다루어지므로, 이스케이프나 쿼트 하는 것을 잊지 않게 해 주세요.

만약, 명령 인수가 주어지지 않았던 경우, pppctl (은)는 인터랙티브 모드가 됩니다. 여기서, 명령은 표준 입력으로부터 읽힙니다. 명령을 읽고 있을 때에, editline(3) 하지만 사용되고 있으면, ( editrc(5) 그리고 지정한 행동으로) 행 편집이 가능하게 됩니다. 히스토리의 크기는 디폴트에서는 20 행 입니다.

이하의 명령행 옵션이 이용 가능합니다:

-v  ppp demon에게 보내진 데이터, ppp demon로부터 받은 데이터를 모두 표시합니다. pppctl (은)는 통상, 받은 비prompt행만 표시합니다. 이 옵션은 인터랙티브 모드에서는 무시됩니다.

-t n
    접속시의 디폴트의 2 초 대신에 n (을)를 타임 아웃의 값으로 해서 이용합니다. 이것은 (다이얼 업도 포함한다) 늦은 링크상에서 demon를 제어하려고 한다 경우에 필요할지도 모릅니다.

-p passwd
    ppp demon가 필요로 하는 패스워드를 지정합니다. 이 스윗치가 지정되지 않으면 pppctl 하 ppp 에의 접속이 성공했을 때에 패스워드의 입력을 재촉합니다.

사용예
ppp (을)를 -auto 모드로 실행하는 경우, pppctl (은)는 많은 일을 자동화하는데 이용할 수 있습니다 (물론, 실제로 ppp (을)를 인터랙티브 모드를 제외한 어떤 모드라도 제어할 수가 있습니다). ps(1) 에 의해 당신의 비밀이 빠져 버릴 가능성을 위해서(때문에), -p 옵션은 (비록 스크립트가 다른 사람에게 읽을 수 없게 되어 있었다고 해도) 추천할 수 없습니다.

pppctl 에의 간단하고 안전한 액세스를 제공하는 가장 좋은 방법은, /etc/ppp/ppp.conf (의 올바른 섹션)에 이하와 같이 로컬 서버 소켓을 작성하는 것입니다:

    set server /var/run/internet "" 0177

이것은, ppp (을)를 실행한 유저인 만큼 액세스 할 수 있도록(듯이), 패스워드 없음으로 퍼미션이 srw------- 의 로컬 도메인 소켓을 작성하도록(듯이) ppp 에 지시합니다. 보다 자세한 해설은 메뉴얼 페이지 ppp(8) (을)를 참조해 주세요.

이와 같이 하면(자) 몇개의 느긋함 스크립트가 작성 가능하게 됩니다. 인터넷에 접속하려면:

    #!  /bin/sh
    test $# -eq 0 && time=300 || time=$1
    exec pppctl /var/run/internet set timeout $time\; dial

절단 하려면:

    #!  /bin/sh
    exec pppctl /var/run/internet set timeout 300\; close

접속되고 있는지 어떤지 확인하려면:

    #!  /bin/sh
    pppctl -p '' -v /var/run/internet quit | grep ^PPP >/dev/null
    if [ $?  -eq 0 ]; then
      echo Link is up
    else
      echo Link is down
    fi

이러한 범용 스크립트도 작성 가능합니다:

    #!  /bin/sh
    exec pppctl /var/run/internet "$@"

다이얼 On Demand도 pppctl (을)를 사용해 제어 가능합니다. ppp (을)를 쭉 동작시키면서도, 매일 8pm 에서 8am 까지는 dial out를 막고 싶다고 합니다. 또, 8pm 에 액티브한 접속은, 닫혀질까 자연스럽게 타임 아웃 할 때까지는 보관 유지하고 싶다고 합니다.

cron(8) 엔트리로서 8pm 에

    pppctl /var/run/internet set filter dial 0 deny 0 0

(을)를 실행하면(자), 이 이후의 다이얼 요구를 모두 막아, 8am 의 엔트리

    pppctl /var/run/internet set filter dial -1

(은)는, 재차 다이얼 요구를 허가합니다.

환경 변수
이하의 환경 변수가, 인터랙티브 모드중의 pppctl 에 의해 이해됩니다:

EL_SIZE
    히스토리행의 수입니다. 디폴트에서는 20 입니다.

EL_EDITOR
    편집 모드입니다. "emacs" 혹은 "vi" 만이 받아들일 수 있습니다. 다른 값은 무시합니다. 이 환경 변수는 ~/.editrc 의 bind -v (이)나 bind -e 그리고 덧쓰기됩니다.

관련 항목
ps(1), editline(3), editrc(5), services(5), ppp(8)

역사
pppctl 유틸리티는 FreeBSD 2.2.5 그리고 최초로 등장했습니다.