manpages: Uniformly order the prologue macros by Dd/Dt/Os.
[dragonfly.git] / usr.sbin / pppctl / pppctl.8
1 .\" $FreeBSD: src/usr.sbin/pppctl/pppctl.8,v 1.12.2.8 2003/03/11 22:31:30 trhodes Exp $
2 .Dd June 26, 1997
3 .Dt PPPCTL 8
4 .Os
5 .Sh NAME
6 .Nm pppctl
7 .Nd PPP control program
8 .Sh SYNOPSIS
9 .Nm
10 .Op Fl v
11 .Op Fl t Ar n
12 .Op Fl p Ar passwd
13 .Xo Oo Ar host : Oc Ns
14 .Ar Port | LocalSocket
15 .Xc
16 .Oo
17 .Sm off
18 .Ar command Oo ; Ar command Oc Ar ...
19 .Sm on
20 .Oc
21 .Sh DESCRIPTION
22 This utility provides command line control of the
23 .Xr ppp 8
24 daemon.  Its primary use is to facilitate simple scripts that
25 control a running daemon.
26 .Pp
27 The
28 .Nm
29 utility is passed at least one argument, specifying the socket on which
30 .Nm ppp
31 is listening.  Refer to the
32 .Sq set server
33 command of
34 .Nm ppp
35 for details.  If the socket contains a leading '/', it
36 is taken as an
37 .Dv AF_LOCAL
38 socket.  If it contains a colon, it is treated as a
39 .Ar host : Ns Ar port
40 pair, otherwise it is treated as a TCP port specification on the
41 local machine (127.0.0.1).  Both the
42 .Ar host
43 and
44 .Ar port
45 may be specified numerically if you wish to avoid a DNS lookup
46 or don't have an entry for the given port in
47 .Pa /etc/services .
48 .Pp
49 All remaining arguments are concatenated to form the
50 .Ar command Ns (s)
51 that will be sent to the
52 .Nm ppp
53 daemon.  If any semi-colon characters are found, they are treated as
54 .Ar command
55 delimiters, allowing more than one
56 .Ar command
57 in a given
58 .Sq session .
59 For example:
60 .Bd -literal -offset indent
61 pppctl 3000 set timeout 300\\; show timeout
62 .Ed
63 .Pp
64 Don't forget to escape or quote the ';' as it is a special character
65 for most shells.
66 .Pp
67 If no
68 .Ar command
69 arguments are given,
70 .Nm
71 enters interactive mode, where commands are read from standard input.
72 When reading commands, the
73 .Xr editline 3
74 library is used, allowing command-line editing (with
75 .Xr editrc 5
76 defining editing behaviour).  The history size
77 defaults to
78 .Em 20 lines .
79 .Pp
80 The following command line options are available:
81 .Bl -tag -width Ds
82 .It Fl v
83 Display all data sent to and received from the
84 .Nm ppp
85 daemon.  Normally,
86 .Nm
87 displays only non-prompt lines received.  This option is ignored in
88 interactive mode.
89 .It Fl t Ar n
90 Use a timeout of
91 .Ar n
92 instead of the default 2 seconds when connecting.  This may be required
93 if you wish to control a daemon over a slow (or even a dialup) link.
94 .It Fl p Ar passwd
95 Specify the password required by the
96 .Nm ppp
97 daemon.  If this switch is not used,
98 .Nm
99 will prompt for a password once it has successfully connected to
100 .Nm ppp .
101 .El
102 .Sh ENVIRONMENT
103 The following environment variables are understood by
104 .Nm
105 when in interactive mode:
106 .Bl -tag -width XXXXXXXXXX
107 .It Ev EL_SIZE
108 The number of history lines.  The default is 20.
109 .It Ev EL_EDITOR
110 The edit mode.  Only values of "emacs" and "vi" are accepted.  Other values
111 are silently ignored.  This environment variable will override the
112 .Ar bind -v
113 and
114 .Ar bind -e
115 commands in
116 .Pa ~/.editrc .
117 .El
118 .Sh EXAMPLES
119 If you run
120 .Nm ppp
121 in
122 .Fl auto
123 mode,
124 .Nm
125 can be used to automate many frequent tasks (you can actually control
126 .Nm ppp
127 in any mode except interactive mode).  Use of the
128 .Fl p
129 option is discouraged (even in scripts that aren't readable by others)
130 as a
131 .Xr ps 1
132 listing may reveal your secret.
133 .Pp
134 The best way to allow easy, secure
135 .Nm
136 access is to create a local server socket in
137 .Pa /etc/ppp/ppp.conf
138 (in the correct section) like this:
139 .Bd -literal -offset indent
140 set server /var/run/internet "" 0177
141 .Ed
142 .Pp
143 This will instruct
144 .Nm ppp
145 to create a local domain socket, with srw------- permissions and no
146 password, allowing access only to the user that invoked
147 .Nm ppp .
148 Refer to the
149 .Xr ppp 8
150 man page for further details.
151 .Pp
152 You can now create some easy-access scripts.  To connect to the internet:
153 .Bd -literal -offset indent
154 #! /bin/sh
155 test $# -eq 0 && time=300 || time=$1
156 exec pppctl /var/run/internet set timeout $time\\; dial
157 .Ed
158 .Pp
159 To disconnect:
160 .Bd -literal -offset indent
161 #! /bin/sh
162 exec pppctl /var/run/internet set timeout 300\\; close
163 .Ed
164 .Pp
165 To check if the line is up:
166 .Bd -literal -offset indent
167 #! /bin/sh
168 pppctl -p '' -v /var/run/internet quit | grep ^PPP >/dev/null
169 if [ $? -eq 0 ]; then
170   echo Link is up
171 else
172   echo Link is down
173 fi
174 .Ed
175 .Pp
176 You can even make a generic script:
177 .Bd -literal -offset indent
178 #! /bin/sh
179 exec pppctl /var/run/internet "$@"
180 .Ed
181 .Pp
182 You could also use
183 .Nm
184 to control when dial-on-demand works.  Suppose you want
185 .Nm ppp
186 to run all the time, but you want to prevent dial-out between 8pm and 8am
187 each day.  However, any connections active at 8pm should continue to remain
188 active until they are closed or naturally time out.
189 .Pp
190 A
191 .Xr cron 8
192 entry for 8pm which runs
193 .Bd -literal -offset indent
194 pppctl /var/run/internet set filter dial 0 deny 0 0
195 .Ed
196 .Pp
197 will block all further dial requests, and the corresponding 8am entry
198 .Bd -literal -offset indent
199 pppctl /var/run/internet set filter dial -1
200 .Ed
201 .Pp
202 will allow them again.
203 .Sh SEE ALSO
204 .Xr ps 1 ,
205 .Xr editline 3 ,
206 .Xr editrc 5 ,
207 .Xr services 5 ,
208 .Xr ppp 8
209 .Sh HISTORY
210 The
211 .Nm
212 utility first appeared in
213 .Fx 2.2.5 .