diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2009-11-08 00:55:39 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2009-11-08 00:55:39 +0100 |
commit | f5c2f72917e5f75634665f67a6105e1e82ece875 (patch) | |
tree | e1c6a85ae214ad33d4bf38e03f0a3548ad1525f6 | |
parent | 44f8d013994c20a53836a8768bd488130c7df9bc (diff) | |
download | busybox-w32-f5c2f72917e5f75634665f67a6105e1e82ece875.tar.gz busybox-w32-f5c2f72917e5f75634665f67a6105e1e82ece875.tar.bz2 busybox-w32-f5c2f72917e5f75634665f67a6105e1e82ece875.zip |
add more service examples
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
21 files changed, 687 insertions, 9 deletions
diff --git a/examples/var_service/ftpd/log/run b/examples/var_service/ftpd/log/run new file mode 100755 index 000000000..560d1b19f --- /dev/null +++ b/examples/var_service/ftpd/log/run | |||
@@ -0,0 +1,21 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | user=logger | ||
4 | |||
5 | logdir="/var/log/service/`(cd ..;basename $PWD)`" | ||
6 | mkdir -p "$logdir" 2>/dev/null | ||
7 | chown -R "$user": "$logdir" | ||
8 | chmod -R go-rwxst,u+rwX "$logdir" | ||
9 | rm logdir | ||
10 | ln -s "$logdir" logdir | ||
11 | |||
12 | # make this dir accessible to logger | ||
13 | chmod a+rX . | ||
14 | |||
15 | exec >/dev/null | ||
16 | exec 2>&1 | ||
17 | exec \ | ||
18 | env - PATH="$PATH" \ | ||
19 | softlimit \ | ||
20 | setuidgid "$user" \ | ||
21 | svlogd -tt "$logdir" | ||
diff --git a/examples/var_service/ftpd/p_log b/examples/var_service/ftpd/p_log new file mode 100755 index 000000000..a2521be05 --- /dev/null +++ b/examples/var_service/ftpd/p_log | |||
@@ -0,0 +1,4 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | cd log/logdir || exit 1 | ||
4 | cat @* current | $PAGER | ||
diff --git a/examples/var_service/ftpd/run b/examples/var_service/ftpd/run new file mode 100755 index 000000000..87b7d2b6c --- /dev/null +++ b/examples/var_service/ftpd/run | |||
@@ -0,0 +1,17 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | #exec >/dev/null | ||
4 | exec 2>&1 | ||
5 | exec </dev/null | ||
6 | |||
7 | user=www | ||
8 | user=root | ||
9 | |||
10 | exec \ | ||
11 | env - PATH="$PATH" \ | ||
12 | softlimit \ | ||
13 | tcpsvd \ | ||
14 | -vE -l 0 -c 40 \ | ||
15 | 0.0.0.0 21 \ | ||
16 | setuidgid "$user" \ | ||
17 | ftpd -vv -t10 /pub/ftpd_root | ||
diff --git a/examples/var_service/ftpd/w_log b/examples/var_service/ftpd/w_log new file mode 100755 index 000000000..34b19b373 --- /dev/null +++ b/examples/var_service/ftpd/w_log | |||
@@ -0,0 +1,4 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | cd log/logdir || exit 1 | ||
4 | watch -n2 'w=`ttysize w`; h=`ttysize h`; tail -$((h-3)) current 2>&1 | cut -b0-$((w-2))' | ||
diff --git a/examples/var_service/getty_tty1/alt08x16+unimap.fnt b/examples/var_service/getty_tty1/alt08x16+unimap.fnt new file mode 100644 index 000000000..9bcc45719 --- /dev/null +++ b/examples/var_service/getty_tty1/alt08x16+unimap.fnt | |||
Binary files differ | |||
diff --git a/examples/var_service/getty_tty1/cfg b/examples/var_service/getty_tty1/cfg new file mode 100755 index 000000000..0f63e5233 --- /dev/null +++ b/examples/var_service/getty_tty1/cfg | |||
@@ -0,0 +1,26 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | if test x"$TERM" = x"" -o x"$TERM" = x"unknown"; then | ||
4 | TERM="linux" | ||
5 | echo "* Setting TERM='$TERM'" | ||
6 | fi | ||
7 | export TERM | ||
8 | |||
9 | ttyname=`tty` | ||
10 | ttybase="${ttyname%%[0123456789]*}" # strip numeric tail | ||
11 | |||
12 | if test x"$ttybase" = x"/dev/vc/" -o x"$ttybase" = x"/dev/tty"; then | ||
13 | echo "* Activating Cyrillic KOI8-R -> CP866 font map" | ||
14 | echo -ne "\033(K" >"$ttyname" | ||
15 | |||
16 | echo "* Loading screen font" | ||
17 | setfont \ | ||
18 | -C "$ttyname" \ | ||
19 | -m "$PWD/koi8r_to_uni.trans" \ | ||
20 | "$PWD/alt08x16+unimap.fnt" \ | ||
21 | || echo "! setfont failure" | ||
22 | |||
23 | echo "* Loading keymap" | ||
24 | loadkeys "$PWD/ru_koi8r.keymap" \ | ||
25 | || echo "! loadkeys failure" | ||
26 | fi | ||
diff --git a/examples/var_service/getty_tty1/koi8r_to_uni.trans b/examples/var_service/getty_tty1/koi8r_to_uni.trans new file mode 100644 index 000000000..6c6bd0125 --- /dev/null +++ b/examples/var_service/getty_tty1/koi8r_to_uni.trans | |||
@@ -0,0 +1,256 @@ | |||
1 | 0x00 U+0000 # NULL (NUL) | ||
2 | 0x01 U+0001 # START OF HEADING (SOH) | ||
3 | 0x02 U+0002 # START OF TEXT (STX) | ||
4 | 0x03 U+0003 # END OF TEXT (ETX) | ||
5 | 0x04 U+0004 # END OF TRANSMISSION (EOT) | ||
6 | 0x05 U+0005 # ENQUIRY (ENQ) | ||
7 | 0x06 U+0006 # ACKNOWLEDGE (ACK) | ||
8 | 0x07 U+0007 # BELL (BEL) | ||
9 | 0x08 U+0008 # BACKSPACE (BS) | ||
10 | 0x09 U+0009 # CHARACTER TABULATION (HT) | ||
11 | 0x0a U+000A # LINE FEED (LF) | ||
12 | 0x0b U+000B # LINE TABULATION (VT) | ||
13 | 0x0c U+000C # FORM FEED (FF) | ||
14 | 0x0d U+000D # CARRIAGE RETURN (CR) | ||
15 | 0x0e U+000E # SHIFT OUT (SO) | ||
16 | 0x0f U+000F # SHIFT IN (SI) | ||
17 | 0x10 U+0010 # DATALINK ESCAPE (DLE) | ||
18 | 0x11 U+0011 # DEVICE CONTROL ONE (DC1) | ||
19 | 0x12 U+0012 # DEVICE CONTROL TWO (DC2) | ||
20 | 0x13 U+0013 # DEVICE CONTROL THREE (DC3) | ||
21 | 0x14 U+0014 # DEVICE CONTROL FOUR (DC4) | ||
22 | 0x15 U+0015 # NEGATIVE ACKNOWLEDGE (NAK) | ||
23 | 0x16 U+0016 # SYNCHRONOUS IDLE (SYN) | ||
24 | 0x17 U+0017 # END OF TRANSMISSION BLOCK (ETB) | ||
25 | 0x18 U+0018 # CANCEL (CAN) | ||
26 | 0x19 U+0019 # END OF MEDIUM (EM) | ||
27 | 0x1a U+001A # SUBSTITUTE (SUB) | ||
28 | 0x1b U+001B # ESCAPE (ESC) | ||
29 | 0x1c U+001C # FILE SEPARATOR (IS4) | ||
30 | 0x1d U+001D # GROUP SEPARATOR (IS3) | ||
31 | 0x1e U+001E # RECORD SEPARATOR (IS2) | ||
32 | 0x1f U+001F # UNIT SEPARATOR (IS1) | ||
33 | 0x20 U+0020 # SPACE | ||
34 | 0x21 U+0021 # EXCLAMATION MARK | ||
35 | 0x22 U+0022 # QUOTATION MARK | ||
36 | 0x23 U+0023 # NUMBER SIGN | ||
37 | 0x24 U+0024 # DOLLAR SIGN | ||
38 | 0x25 U+0025 # PERCENT SIGN | ||
39 | 0x26 U+0026 # AMPERSAND | ||
40 | 0x27 U+0027 # APOSTROPHE | ||
41 | 0x28 U+0028 # LEFT PARENTHESIS | ||
42 | 0x29 U+0029 # RIGHT PARENTHESIS | ||
43 | 0x2a U+002A # ASTERISK | ||
44 | 0x2b U+002B # PLUS SIGN | ||
45 | 0x2c U+002C # COMMA | ||
46 | 0x2d U+002D # HYPHEN-MINUS | ||
47 | 0x2e U+002E # FULL STOP | ||
48 | 0x2f U+002F # SOLIDUS | ||
49 | 0x30 U+0030 # DIGIT ZERO | ||
50 | 0x31 U+0031 # DIGIT ONE | ||
51 | 0x32 U+0032 # DIGIT TWO | ||
52 | 0x33 U+0033 # DIGIT THREE | ||
53 | 0x34 U+0034 # DIGIT FOUR | ||
54 | 0x35 U+0035 # DIGIT FIVE | ||
55 | 0x36 U+0036 # DIGIT SIX | ||
56 | 0x37 U+0037 # DIGIT SEVEN | ||
57 | 0x38 U+0038 # DIGIT EIGHT | ||
58 | 0x39 U+0039 # DIGIT NINE | ||
59 | 0x3a U+003A # COLON | ||
60 | 0x3b U+003B # SEMICOLON | ||
61 | 0x3c U+003C # LESS-THAN SIGN | ||
62 | 0x3d U+003D # EQUALS SIGN | ||
63 | 0x3e U+003E # GREATER-THAN SIGN | ||
64 | 0x3f U+003F # QUESTION MARK | ||
65 | 0x40 U+0040 # COMMERCIAL AT | ||
66 | 0x41 U+0041 # LATIN CAPITAL LETTER A | ||
67 | 0x42 U+0042 # LATIN CAPITAL LETTER B | ||
68 | 0x43 U+0043 # LATIN CAPITAL LETTER C | ||
69 | 0x44 U+0044 # LATIN CAPITAL LETTER D | ||
70 | 0x45 U+0045 # LATIN CAPITAL LETTER E | ||
71 | 0x46 U+0046 # LATIN CAPITAL LETTER F | ||
72 | 0x47 U+0047 # LATIN CAPITAL LETTER G | ||
73 | 0x48 U+0048 # LATIN CAPITAL LETTER H | ||
74 | 0x49 U+0049 # LATIN CAPITAL LETTER I | ||
75 | 0x4a U+004A # LATIN CAPITAL LETTER J | ||
76 | 0x4b U+004B # LATIN CAPITAL LETTER K | ||
77 | 0x4c U+004C # LATIN CAPITAL LETTER L | ||
78 | 0x4d U+004D # LATIN CAPITAL LETTER M | ||
79 | 0x4e U+004E # LATIN CAPITAL LETTER N | ||
80 | 0x4f U+004F # LATIN CAPITAL LETTER O | ||
81 | 0x50 U+0050 # LATIN CAPITAL LETTER P | ||
82 | 0x51 U+0051 # LATIN CAPITAL LETTER Q | ||
83 | 0x52 U+0052 # LATIN CAPITAL LETTER R | ||
84 | 0x53 U+0053 # LATIN CAPITAL LETTER S | ||
85 | 0x54 U+0054 # LATIN CAPITAL LETTER T | ||
86 | 0x55 U+0055 # LATIN CAPITAL LETTER U | ||
87 | 0x56 U+0056 # LATIN CAPITAL LETTER V | ||
88 | 0x57 U+0057 # LATIN CAPITAL LETTER W | ||
89 | 0x58 U+0058 # LATIN CAPITAL LETTER X | ||
90 | 0x59 U+0059 # LATIN CAPITAL LETTER Y | ||
91 | 0x5a U+005A # LATIN CAPITAL LETTER Z | ||
92 | 0x5b U+005B # LEFT SQUARE BRACKET | ||
93 | 0x5c U+005C # REVERSE SOLIDUS | ||
94 | 0x5d U+005D # RIGHT SQUARE BRACKET | ||
95 | 0x5e U+005E # CIRCUMFLEX ACCENT | ||
96 | 0x5f U+005F # LOW LINE | ||
97 | 0x60 U+0060 # GRAVE ACCENT | ||
98 | 0x61 U+0061 # LATIN SMALL LETTER A | ||
99 | 0x62 U+0062 # LATIN SMALL LETTER B | ||
100 | 0x63 U+0063 # LATIN SMALL LETTER C | ||
101 | 0x64 U+0064 # LATIN SMALL LETTER D | ||
102 | 0x65 U+0065 # LATIN SMALL LETTER E | ||
103 | 0x66 U+0066 # LATIN SMALL LETTER F | ||
104 | 0x67 U+0067 # LATIN SMALL LETTER G | ||
105 | 0x68 U+0068 # LATIN SMALL LETTER H | ||
106 | 0x69 U+0069 # LATIN SMALL LETTER I | ||
107 | 0x6a U+006A # LATIN SMALL LETTER J | ||
108 | 0x6b U+006B # LATIN SMALL LETTER K | ||
109 | 0x6c U+006C # LATIN SMALL LETTER L | ||
110 | 0x6d U+006D # LATIN SMALL LETTER M | ||
111 | 0x6e U+006E # LATIN SMALL LETTER N | ||
112 | 0x6f U+006F # LATIN SMALL LETTER O | ||
113 | 0x70 U+0070 # LATIN SMALL LETTER P | ||
114 | 0x71 U+0071 # LATIN SMALL LETTER Q | ||
115 | 0x72 U+0072 # LATIN SMALL LETTER R | ||
116 | 0x73 U+0073 # LATIN SMALL LETTER S | ||
117 | 0x74 U+0074 # LATIN SMALL LETTER T | ||
118 | 0x75 U+0075 # LATIN SMALL LETTER U | ||
119 | 0x76 U+0076 # LATIN SMALL LETTER V | ||
120 | 0x77 U+0077 # LATIN SMALL LETTER W | ||
121 | 0x78 U+0078 # LATIN SMALL LETTER X | ||
122 | 0x79 U+0079 # LATIN SMALL LETTER Y | ||
123 | 0x7a U+007A # LATIN SMALL LETTER Z | ||
124 | 0x7b U+007B # LEFT CURLY BRACKET | ||
125 | 0x7c U+007C # VERTICAL LINE | ||
126 | 0x7d U+007D # RIGHT CURLY BRACKET | ||
127 | 0x7e U+007E # TILDE | ||
128 | 0x7f U+007F # DELETE (DEL) | ||
129 | 0x80 U+2500 # BOX DRAWINGS LIGHT HORIZONTAL | ||
130 | 0x81 U+2502 # BOX DRAWINGS LIGHT VERTICAL | ||
131 | 0x82 U+250C # BOX DRAWINGS LIGHT DOWN AND RIGHT | ||
132 | 0x83 U+2510 # BOX DRAWINGS LIGHT DOWN AND LEFT | ||
133 | 0x84 U+2514 # BOX DRAWINGS LIGHT UP AND RIGHT | ||
134 | 0x85 U+2518 # BOX DRAWINGS LIGHT UP AND LEFT | ||
135 | 0x86 U+251C # BOX DRAWINGS LIGHT VERTICAL AND RIGHT | ||
136 | 0x87 U+2524 # BOX DRAWINGS LIGHT VERTICAL AND LEFT | ||
137 | 0x88 U+252C # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL | ||
138 | 0x89 U+2534 # BOX DRAWINGS LIGHT UP AND HORIZONTAL | ||
139 | 0x8a U+253C # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL | ||
140 | 0x8b U+2580 # UPPER HALF BLOCK | ||
141 | 0x8c U+2584 # LOWER HALF BLOCK | ||
142 | 0x8d U+2588 # FULL BLOCK | ||
143 | 0x8e U+258C # LEFT HALF BLOCK | ||
144 | 0x8f U+2590 # RIGHT HALF BLOCK | ||
145 | 0x90 U+2591 # LIGHT SHADE | ||
146 | 0x91 U+2592 # MEDIUM SHADE | ||
147 | 0x92 U+2593 # DARK SHADE | ||
148 | 0x93 U+2320 # TOP HALF INTEGRAL | ||
149 | 0x94 U+25A0 # BLACK SQUARE | ||
150 | 0x95 U+2219 # BULLET OPERATOR | ||
151 | 0x96 U+221A # SQUARE ROOT | ||
152 | 0x97 U+2248 # ALMOST EQUAL TO | ||
153 | 0x98 U+2264 # LESS-THAN OR EQUAL TO | ||
154 | 0x99 U+2265 # GREATER-THAN OR EQUAL TO | ||
155 | 0x9a U+00A0 # NO-BREAK SPACE | ||
156 | 0x9b U+2321 # BOTTOM HALF INTEGRAL | ||
157 | 0x9c U+00B0 # DEGREE SIGN | ||
158 | 0x9d U+00B2 # SUPERSCRIPT TWO | ||
159 | 0x9e U+00B7 # MIDDLE DOT | ||
160 | 0x9f U+00F7 # DIVISION SIGN | ||
161 | 0xa0 U+2550 # BOX DRAWINGS DOUBLE HORIZONTAL | ||
162 | 0xa1 U+2551 # BOX DRAWINGS DOUBLE VERTICAL | ||
163 | 0xa2 U+2552 # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE | ||
164 | 0xa3 U+0451 # CYRILLIC SMALL LETTER IO | ||
165 | 0xa4 U+2553 # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE | ||
166 | 0xa5 U+2554 # BOX DRAWINGS DOUBLE DOWN AND RIGHT | ||
167 | 0xa6 U+2555 # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE | ||
168 | 0xa7 U+2556 # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE | ||
169 | 0xa8 U+2557 # BOX DRAWINGS DOUBLE DOWN AND LEFT | ||
170 | 0xa9 U+2558 # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE | ||
171 | 0xaa U+2559 # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE | ||
172 | 0xab U+255A # BOX DRAWINGS DOUBLE UP AND RIGHT | ||
173 | 0xac U+255B # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE | ||
174 | 0xad U+255C # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE | ||
175 | 0xae U+255D # BOX DRAWINGS DOUBLE UP AND LEFT | ||
176 | 0xaf U+255E # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE | ||
177 | 0xb0 U+255F # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE | ||
178 | 0xb1 U+2560 # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT | ||
179 | 0xb2 U+2561 # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE | ||
180 | 0xb3 U+0401 # CYRILLIC CAPITAL LETTER IO | ||
181 | 0xb4 U+2562 # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE | ||
182 | 0xb5 U+2563 # BOX DRAWINGS DOUBLE VERTICAL AND LEFT | ||
183 | 0xb6 U+2564 # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE | ||
184 | 0xb7 U+2565 # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE | ||
185 | 0xb8 U+2566 # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL | ||
186 | 0xb9 U+2567 # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE | ||
187 | 0xba U+2568 # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE | ||
188 | 0xbb U+2569 # BOX DRAWINGS DOUBLE UP AND HORIZONTAL | ||
189 | 0xbc U+256A # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE | ||
190 | 0xbd U+256B # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE | ||
191 | 0xbe U+256C # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL | ||
192 | 0xbf U+00A9 # COPYRIGHT SIGN | ||
193 | 0xc0 U+044E # CYRILLIC SMALL LETTER YU | ||
194 | 0xc1 U+0430 # CYRILLIC SMALL LETTER A | ||
195 | 0xc2 U+0431 # CYRILLIC SMALL LETTER BE | ||
196 | 0xc3 U+0446 # CYRILLIC SMALL LETTER TSE | ||
197 | 0xc4 U+0434 # CYRILLIC SMALL LETTER DE | ||
198 | 0xc5 U+0435 # CYRILLIC SMALL LETTER IE | ||
199 | 0xc6 U+0444 # CYRILLIC SMALL LETTER EF | ||
200 | 0xc7 U+0433 # CYRILLIC SMALL LETTER GHE | ||
201 | 0xc8 U+0445 # CYRILLIC SMALL LETTER HA | ||
202 | 0xc9 U+0438 # CYRILLIC SMALL LETTER I | ||
203 | 0xca U+0439 # CYRILLIC SMALL LETTER SHORT I | ||
204 | 0xcb U+043A # CYRILLIC SMALL LETTER KA | ||
205 | 0xcc U+043B # CYRILLIC SMALL LETTER EL | ||
206 | 0xcd U+043C # CYRILLIC SMALL LETTER EM | ||
207 | 0xce U+043D # CYRILLIC SMALL LETTER EN | ||
208 | 0xcf U+043E # CYRILLIC SMALL LETTER O | ||
209 | 0xd0 U+043F # CYRILLIC SMALL LETTER PE | ||
210 | 0xd1 U+044F # CYRILLIC SMALL LETTER YA | ||
211 | 0xd2 U+0440 # CYRILLIC SMALL LETTER ER | ||
212 | 0xd3 U+0441 # CYRILLIC SMALL LETTER ES | ||
213 | 0xd4 U+0442 # CYRILLIC SMALL LETTER TE | ||
214 | 0xd5 U+0443 # CYRILLIC SMALL LETTER U | ||
215 | 0xd6 U+0436 # CYRILLIC SMALL LETTER ZHE | ||
216 | 0xd7 U+0432 # CYRILLIC SMALL LETTER VE | ||
217 | 0xd8 U+044C # CYRILLIC SMALL LETTER SOFT SIGN | ||
218 | 0xd9 U+044B # CYRILLIC SMALL LETTER YERU | ||
219 | 0xda U+0437 # CYRILLIC SMALL LETTER ZE | ||
220 | 0xdb U+0448 # CYRILLIC SMALL LETTER SHA | ||
221 | 0xdc U+044D # CYRILLIC SMALL LETTER E | ||
222 | 0xdd U+0449 # CYRILLIC SMALL LETTER SHCHA | ||
223 | 0xde U+0447 # CYRILLIC SMALL LETTER CHE | ||
224 | 0xdf U+044A # CYRILLIC SMALL LETTER HARD SIGN | ||
225 | 0xe0 U+042E # CYRILLIC CAPITAL LETTER YU | ||
226 | 0xe1 U+0410 # CYRILLIC CAPITAL LETTER A | ||
227 | 0xe2 U+0411 # CYRILLIC CAPITAL LETTER BE | ||
228 | 0xe3 U+0426 # CYRILLIC CAPITAL LETTER TSE | ||
229 | 0xe4 U+0414 # CYRILLIC CAPITAL LETTER DE | ||
230 | 0xe5 U+0415 # CYRILLIC CAPITAL LETTER IE | ||
231 | 0xe6 U+0424 # CYRILLIC CAPITAL LETTER EF | ||
232 | 0xe7 U+0413 # CYRILLIC CAPITAL LETTER GHE | ||
233 | 0xe8 U+0425 # CYRILLIC CAPITAL LETTER HA | ||
234 | 0xe9 U+0418 # CYRILLIC CAPITAL LETTER I | ||
235 | 0xea U+0419 # CYRILLIC CAPITAL LETTER SHORT I | ||
236 | 0xeb U+041A # CYRILLIC CAPITAL LETTER KA | ||
237 | 0xec U+041B # CYRILLIC CAPITAL LETTER EL | ||
238 | 0xed U+041C # CYRILLIC CAPITAL LETTER EM | ||
239 | 0xee U+041D # CYRILLIC CAPITAL LETTER EN | ||
240 | 0xef U+041E # CYRILLIC CAPITAL LETTER O | ||
241 | 0xf0 U+041F # CYRILLIC CAPITAL LETTER PE | ||
242 | 0xf1 U+042F # CYRILLIC CAPITAL LETTER YA | ||
243 | 0xf2 U+0420 # CYRILLIC CAPITAL LETTER ER | ||
244 | 0xf3 U+0421 # CYRILLIC CAPITAL LETTER ES | ||
245 | 0xf4 U+0422 # CYRILLIC CAPITAL LETTER TE | ||
246 | 0xf5 U+0423 # CYRILLIC CAPITAL LETTER U | ||
247 | 0xf6 U+0416 # CYRILLIC CAPITAL LETTER ZHE | ||
248 | 0xf7 U+0412 # CYRILLIC CAPITAL LETTER VE | ||
249 | 0xf8 U+042C # CYRILLIC CAPITAL LETTER SOFT SIGN | ||
250 | 0xf9 U+042B # CYRILLIC CAPITAL LETTER YERU | ||
251 | 0xfa U+0417 # CYRILLIC CAPITAL LETTER ZE | ||
252 | 0xfb U+0428 # CYRILLIC CAPITAL LETTER SHA | ||
253 | 0xfc U+042D # CYRILLIC CAPITAL LETTER E | ||
254 | 0xfd U+0429 # CYRILLIC CAPITAL LETTER SHCHA | ||
255 | 0xfe U+0427 # CYRILLIC CAPITAL LETTER CHE | ||
256 | 0xff U+042A # CYRILLIC CAPITAL LETTER HARD SIGN | ||
diff --git a/examples/var_service/getty_tty1/login.sh b/examples/var_service/getty_tty1/login.sh new file mode 100755 index 000000000..d69b6fd55 --- /dev/null +++ b/examples/var_service/getty_tty1/login.sh | |||
@@ -0,0 +1,12 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | ttyname=`tty` | ||
4 | ttybase="${ttyname%%[0123456789]*}" # strip numeric tail | ||
5 | |||
6 | if test "$ttybase" = "/dev/tty"; then | ||
7 | tail="${ttyname:8}" | ||
8 | echo "* Setting terminal device's owner to $LOGIN_UID:$LOGIN_GID" | ||
9 | chown "$LOGIN_UID:$LOGIN_GID" "/dev/vcs$tail" "/dev/vcsa$tail" | ||
10 | fi | ||
11 | # We can do this also, but login does it itself | ||
12 | # chown "$LOGIN_UID:$LOGIN_GID" "$ttyname" | ||
diff --git a/examples/var_service/getty_tty1/ru_koi8r.keymap b/examples/var_service/getty_tty1/ru_koi8r.keymap new file mode 100644 index 000000000..e131e62f2 --- /dev/null +++ b/examples/var_service/getty_tty1/ru_koi8r.keymap | |||
@@ -0,0 +1,183 @@ | |||
1 | keymaps 0,1, 2,3, 4,6, 8,10, 12,14 | ||
2 | # | ||
3 | # This one is for generating koi8r Russian chars | ||
4 | # Cyr/Lat switches: RightAlt, Shift+Ctrl, Ctrl+Shift | ||
5 | # (last one does not work for dark and obscure reasons 8( ) | ||
6 | # | ||
7 | # plain,shift, plain,shift, ctrl,ctrl alt,alt ctrlalt,ctrlalt | ||
8 | # lat-------- cyr-------- lat cyr lat cyr lat cyr | ||
9 | # | ||
10 | #Shift 1 | ||
11 | #AltGr (cyr) 2 | ||
12 | #Control 4 | ||
13 | #Alt 8 | ||
14 | #ShiftL 16 | ||
15 | #ShiftR 32 | ||
16 | #CtrlL 64 | ||
17 | #CtrlR 128 | ||
18 | #============== plain ========= shift========== plain cyr ===== shift cyr ===== ctrl ================== ctrl cyr ============== alt =================== alt cyr =============== ctrlalt =============== ctrlalt cyr =========== | ||
19 | keycode 1 = Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape SAK SAK | ||
20 | keycode 2 = one exclam one exclam exclam exclam Meta_one Meta_one | ||
21 | keycode 3 = two at two at nul nul Meta_two Meta_two | ||
22 | keycode 4 = three numbersign three numbersign three three Meta_three Meta_three | ||
23 | keycode 5 = four dollar four dollar Control_backslash Control_backslash Meta_four Meta_four | ||
24 | keycode 6 = five percent five percent Control_bracketright Control_bracketright Meta_five Meta_five | ||
25 | keycode 7 = six asciicircum six asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_six | ||
26 | keycode 8 = seven ampersand seven ampersand Control_underscore Control_underscore Meta_seven Meta_seven | ||
27 | keycode 9 = eight asterisk eight asterisk eight eight Meta_eight Meta_eight | ||
28 | keycode 10 = nine parenleft nine parenleft nine nine Meta_nine Meta_nine | ||
29 | keycode 11 = zero parenright zero parenright zero zero Meta_zero Meta_zero | ||
30 | keycode 12 = minus underscore minus underscore Control_underscore Control_underscore Meta_minus Meta_minus | ||
31 | keycode 13 = equal plus equal plus equal equal Meta_equal Meta_equal | ||
32 | keycode 14 = Delete Delete Delete Delete BackSpace BackSpace Meta_Delete Meta_Delete | ||
33 | keycode 15 = Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab | ||
34 | keycode 16 = q Q 202 234 Control_q Control_q Meta_q Meta_q Meta_Control_q Meta_Control_q | ||
35 | keycode 17 = w W 195 227 Control_w Control_w Meta_w Meta_w Meta_Control_w Meta_Control_w | ||
36 | keycode 18 = e E 213 245 Control_e Control_e Meta_e Meta_e Meta_Control_e Meta_Control_e | ||
37 | keycode 19 = r R 203 235 Control_r Control_r Meta_r Meta_r Meta_Control_r Meta_Control_r | ||
38 | keycode 20 = t T 197 229 Control_t Control_t Meta_t Meta_t Meta_Control_t Meta_Control_t | ||
39 | #============== plain ========= shift========== plain cyr ===== shift cyr ===== ctrl ================== ctrl cyr ============== alt =================== alt cyr =============== ctrlalt =============== ctrlalt cyr =========== | ||
40 | keycode 21 = y Y 206 238 Control_y Control_y Meta_y Meta_y Meta_Control_y Meta_Control_y | ||
41 | keycode 22 = u U 199 231 Control_u Control_u Meta_u Meta_u Meta_Control_u Meta_Control_u | ||
42 | keycode 23 = i I 219 251 Control_i Control_i Meta_i Meta_i Meta_Control_i Meta_Control_i | ||
43 | keycode 24 = o O 221 253 Control_o Control_o Meta_o Meta_o Meta_Control_o Meta_Control_o | ||
44 | keycode 25 = p P 218 250 Control_p Control_p Meta_p Meta_p Meta_Control_p Meta_Control_p | ||
45 | keycode 26 = bracketleft braceleft 200 232 Escape Escape Meta_bracketleft Meta_bracketleft | ||
46 | keycode 27 = bracketright braceright 223 255 Control_bracketright Control_bracketright | ||
47 | keycode 28 = Return | ||
48 | # Shift+Ctrl - Cyrillic | ||
49 | keycode 29 = Control AltGr_Lock Control AltGr_Lock Control Control Control Control Control Control | ||
50 | keycode 30 = a A 198 230 Control_a Control_a Meta_a Meta_a Meta_Control_a Meta_Control_a | ||
51 | keycode 31 = s S 217 249 Control_s Control_s Meta_s Meta_s Meta_Control_s Meta_Control_s | ||
52 | keycode 32 = d D 215 247 Control_d Control_d Meta_d Meta_d Meta_Control_d Meta_Control_d | ||
53 | keycode 33 = f F 193 225 Control_f Control_f Meta_f Meta_f Meta_Control_f Meta_Control_f | ||
54 | keycode 34 = g G 208 240 Control_g Control_g Meta_g Meta_g Meta_Control_g Meta_Control_g | ||
55 | keycode 35 = h H 210 242 Control_h Control_h Meta_h Meta_h Meta_Control_h Meta_Control_h | ||
56 | keycode 36 = j J 207 239 Control_j Control_j Meta_j Meta_j Meta_Control_j Meta_Control_j | ||
57 | keycode 37 = k K 204 236 Control_k Control_k Meta_k Meta_k Meta_Control_k Meta_Control_k | ||
58 | keycode 38 = l L 196 228 Control_l Control_l Meta_l Meta_l Meta_Control_l Meta_Control_l | ||
59 | keycode 39 = semicolon colon 214 246 semicolon semicolon Meta_semicolon Meta_semicolon | ||
60 | keycode 40 = apostrophe quotedbl 220 252 Control_g Control_g Meta_apostrophe Meta_apostrophe | ||
61 | #============== plain ========= shift========== plain cyr ===== shift cyr ===== ctrl ================== ctrl cyr ============== alt =================== alt cyr =============== ctrlalt =============== ctrlalt cyr =========== | ||
62 | keycode 41 = grave asciitilde grave asciitilde nul nul Meta_grave Meta_grave | ||
63 | keycode 42 = Shift | ||
64 | keycode 43 = backslash bar backslash bar Control_backslash Control_backslash Meta_backslash Meta_backslash | ||
65 | keycode 44 = z Z 209 241 Control_z Control_z Meta_z Meta_z Meta_Control_z Meta_Control_z | ||
66 | keycode 45 = x X 222 254 Control_x Control_x Meta_x Meta_x Meta_Control_x Meta_Control_x | ||
67 | keycode 46 = c C 211 243 Control_c Control_c Meta_c Meta_c Meta_Control_c Meta_Control_c | ||
68 | keycode 47 = v V 205 237 Control_v Control_v Meta_v Meta_v Meta_Control_v Meta_Control_v | ||
69 | keycode 48 = b B 201 233 Control_b Control_b Meta_b Meta_b Meta_Control_b Meta_Control_b | ||
70 | keycode 49 = n N 212 244 Control_n Control_n Meta_n Meta_n Meta_Control_n Meta_Control_n | ||
71 | keycode 50 = m M 216 248 Control_m Control_m Meta_m Meta_m Meta_Control_m Meta_Control_m | ||
72 | keycode 51 = comma less 194 226 comma comma Meta_comma Meta_comma | ||
73 | keycode 52 = period greater 192 224 Compose Compose Meta_period Meta_period | ||
74 | keycode 53 = slash question slash question Delete Delete Meta_slash Meta_slash Meta_question Meta_question | ||
75 | # Ctrl+Shift - Cyrillic (not working???) | ||
76 | keycode 54 = Shift Shift Shift Shift AltGr_Lock AltGr_Lock Shift Shift Shift Shift | ||
77 | keycode 55 = KP_Multiply | ||
78 | keycode 56 = Alt | ||
79 | keycode 57 = space space space space nul nul Meta_space Meta_space | ||
80 | keycode 58 = Caps_Lock | ||
81 | keycode 59 = F1 F11 F1 F11 F1 F1 Console_1 Console_1 Console_1 Console_1 | ||
82 | keycode 60 = F2 F12 F2 F12 F2 F2 Console_2 Console_2 Console_2 Console_2 | ||
83 | #============== plain ========= shift========== plain cyr ===== shift cyr ===== ctrl ================== ctrl cyr ============== alt =================== alt cyr =============== ctrlalt =============== ctrlalt cyr =========== | ||
84 | keycode 61 = F3 F13 F3 F13 F3 F3 Console_3 Console_3 Console_3 Console_3 | ||
85 | keycode 62 = F4 F14 F4 F14 F4 F4 Console_4 Console_4 Console_4 Console_4 | ||
86 | keycode 63 = F5 F15 F5 F15 F5 F5 Console_5 Console_5 Console_5 Console_5 | ||
87 | keycode 64 = F6 F16 F6 F16 F6 F6 Console_6 Console_6 Console_6 Console_6 | ||
88 | keycode 65 = F7 F17 F7 F17 F7 F7 Console_7 Console_7 Console_7 Console_7 | ||
89 | keycode 66 = F8 F18 F8 F18 F8 F8 Console_8 Console_8 Console_8 Console_8 | ||
90 | keycode 67 = F9 F19 F9 F19 F9 F9 Console_9 Console_9 Console_9 Console_9 | ||
91 | keycode 68 = F10 F20 F10 F20 F10 F10 Console_10 Console_10 Console_10 Console_10 | ||
92 | keycode 69 = Num_Lock Bare_Num_Lock Num_Lock Bare_Num_Lock | ||
93 | keycode 70 = Scroll_Lock Show_Memory Scroll_Lock Show_Memory Show_State Show_State | ||
94 | keycode 71 = KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Ascii_7 | ||
95 | keycode 72 = KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Ascii_8 | ||
96 | keycode 73 = KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Ascii_9 | ||
97 | keycode 74 = KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract | ||
98 | keycode 75 = KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Ascii_4 | ||
99 | keycode 76 = KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Ascii_5 | ||
100 | keycode 77 = KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Ascii_6 | ||
101 | keycode 78 = KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add | ||
102 | keycode 79 = KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Ascii_1 | ||
103 | keycode 80 = KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Ascii_2 | ||
104 | #============== plain ========= shift========== plain cyr ===== shift cyr ===== ctrl ================== ctrl cyr ============== alt =================== alt cyr =============== ctrlalt =============== ctrlalt cyr =========== | ||
105 | keycode 81 = KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Ascii_3 | ||
106 | keycode 82 = KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Ascii_0 | ||
107 | keycode 83 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot Boot | ||
108 | keycode 84 = Last_Console | ||
109 | keycode 85 = | ||
110 | keycode 86 = less greater less greater less less Meta_less Meta_less | ||
111 | keycode 87 = F11 F11 F11 F11 F11 F11 Console_11 Console_11 Console_11 Console_11 | ||
112 | keycode 88 = F12 F12 F12 F12 F12 F12 Console_12 Console_12 Console_12 Console_12 | ||
113 | keycode 89 = | ||
114 | keycode 90 = | ||
115 | keycode 91 = | ||
116 | keycode 92 = | ||
117 | keycode 93 = | ||
118 | keycode 94 = | ||
119 | keycode 95 = | ||
120 | keycode 96 = KP_Enter | ||
121 | keycode 97 = Control | ||
122 | keycode 98 = KP_Divide | ||
123 | keycode 99 = Control_backslash | ||
124 | # Right Alt - Cyrillic | ||
125 | keycode 100 = AltGr_Lock | ||
126 | #============== plain ========= shift========== plain cyr ===== shift cyr ===== ctrl ================== ctrl cyr ============== alt =================== alt cyr =============== ctrlalt =============== ctrlalt cyr =========== | ||
127 | keycode 101 = Break | ||
128 | keycode 102 = Find | ||
129 | keycode 103 = Up | ||
130 | keycode 104 = Prior Scroll_Backward Prior Scroll_Backward Prior Prior Prior Prior Prior Prior | ||
131 | keycode 105 = Left Left Left Left Left Left Left Left Decr_Console Decr_Console | ||
132 | keycode 106 = Right Right Right Right Right Right Right Right Incr_Console Incr_Console | ||
133 | keycode 107 = Select | ||
134 | keycode 108 = Down | ||
135 | keycode 109 = Next Scroll_Forward Next Scroll_Forward Next Next Next Next Next Next | ||
136 | keycode 110 = Insert | ||
137 | keycode 111 = Remove Remove Remove Remove Remove Remove Remove Remove Boot Boot | ||
138 | keycode 112 = Macro | ||
139 | keycode 113 = F13 | ||
140 | keycode 114 = F14 | ||
141 | keycode 115 = Help | ||
142 | keycode 116 = Do | ||
143 | keycode 117 = F17 | ||
144 | keycode 118 = KP_MinPlus | ||
145 | keycode 119 = Pause | ||
146 | keycode 120 = | ||
147 | #============== plain ========= shift========== plain cyr ===== shift cyr ===== ctrl ================== ctrl cyr ============== alt =================== alt cyr =============== ctrlalt =============== ctrlalt cyr =========== | ||
148 | keycode 121 = | ||
149 | keycode 122 = | ||
150 | keycode 123 = | ||
151 | keycode 124 = | ||
152 | keycode 125 = | ||
153 | keycode 126 = | ||
154 | keycode 127 = | ||
155 | |||
156 | string F1 = "\033[[A" | ||
157 | string F2 = "\033[[B" | ||
158 | string F3 = "\033[[C" | ||
159 | string F4 = "\033[[D" | ||
160 | string F5 = "\033[[E" | ||
161 | string F6 = "\033[17~" | ||
162 | string F7 = "\033[18~" | ||
163 | string F8 = "\033[19~" | ||
164 | string F9 = "\033[20~" | ||
165 | string F10 = "\033[21~" | ||
166 | string F11 = "\033[23~" | ||
167 | string F12 = "\033[24~" | ||
168 | string F13 = "\033[25~" | ||
169 | string F14 = "\033[26~" | ||
170 | string F15 = "\033[28~" | ||
171 | string F16 = "\033[29~" | ||
172 | string F17 = "\033[31~" | ||
173 | string F18 = "\033[32~" | ||
174 | string F19 = "\033[33~" | ||
175 | string F20 = "\033[34~" | ||
176 | string Find = "\033[1~" | ||
177 | string Insert = "\033[2~" | ||
178 | string Remove = "\033[3~" | ||
179 | string Select = "\033[4~" | ||
180 | string Prior = "\033[5~" | ||
181 | string Next = "\033[6~" | ||
182 | string Macro = "\033[M" | ||
183 | string Pause = "\033[P" | ||
diff --git a/examples/var_service/getty_tty1/run b/examples/var_service/getty_tty1/run new file mode 100755 index 000000000..c7c413ba4 --- /dev/null +++ b/examples/var_service/getty_tty1/run | |||
@@ -0,0 +1,30 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | exec >/dev/null | ||
4 | exec 2>&1 | ||
5 | exec </dev/null | ||
6 | |||
7 | user=root | ||
8 | baud=38400 | ||
9 | delay=3 | ||
10 | export TERM=linux | ||
11 | |||
12 | tty="/dev/${PWD##*/getty_}" | ||
13 | |||
14 | if ! test -e "$tty"; then | ||
15 | exec env - sleep 32000 | ||
16 | fi | ||
17 | |||
18 | sleep "$delay" | ||
19 | |||
20 | chown "$user" "$tty" # - devfs made happy | ||
21 | |||
22 | exec <"$tty" >"$tty" 2>&1 | ||
23 | # using . in order to be able to set env (TERM etc) in cfg | ||
24 | test -x ./cfg && . ./cfg | ||
25 | |||
26 | exec \ | ||
27 | env - "TERM=$TERM" PATH="$PATH" LOGIN_PRE_SUID_SCRIPT="$PWD/login.sh" \ | ||
28 | softlimit \ | ||
29 | setuidgid "$user" \ | ||
30 | getty "$baud" "$tty" "$TERM" | ||
diff --git a/examples/var_service/gpm/run b/examples/var_service/gpm/run new file mode 100755 index 000000000..a13fdcdf0 --- /dev/null +++ b/examples/var_service/gpm/run | |||
@@ -0,0 +1,15 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | exec >/dev/null | ||
4 | exec 2>&1 | ||
5 | exec </dev/null | ||
6 | |||
7 | user=root | ||
8 | options="-D -2 -m /dev/psaux -t ps2" | ||
9 | #options="-D -2 -m /dev/ttyS0 -t bare" | ||
10 | |||
11 | exec \ | ||
12 | env - PATH="$PATH" \ | ||
13 | softlimit \ | ||
14 | setuidgid "$user" \ | ||
15 | gpm $options | ||
diff --git a/examples/var_service/httpd/log/run b/examples/var_service/httpd/log/run new file mode 100755 index 000000000..560d1b19f --- /dev/null +++ b/examples/var_service/httpd/log/run | |||
@@ -0,0 +1,21 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | user=logger | ||
4 | |||
5 | logdir="/var/log/service/`(cd ..;basename $PWD)`" | ||
6 | mkdir -p "$logdir" 2>/dev/null | ||
7 | chown -R "$user": "$logdir" | ||
8 | chmod -R go-rwxst,u+rwX "$logdir" | ||
9 | rm logdir | ||
10 | ln -s "$logdir" logdir | ||
11 | |||
12 | # make this dir accessible to logger | ||
13 | chmod a+rX . | ||
14 | |||
15 | exec >/dev/null | ||
16 | exec 2>&1 | ||
17 | exec \ | ||
18 | env - PATH="$PATH" \ | ||
19 | softlimit \ | ||
20 | setuidgid "$user" \ | ||
21 | svlogd -tt "$logdir" | ||
diff --git a/examples/var_service/httpd/p_log b/examples/var_service/httpd/p_log new file mode 100755 index 000000000..a2521be05 --- /dev/null +++ b/examples/var_service/httpd/p_log | |||
@@ -0,0 +1,4 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | cd log/logdir || exit 1 | ||
4 | cat @* current | $PAGER | ||
diff --git a/examples/var_service/httpd/run b/examples/var_service/httpd/run new file mode 100755 index 000000000..ff8869b8a --- /dev/null +++ b/examples/var_service/httpd/run | |||
@@ -0,0 +1,18 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | #exec >/dev/null | ||
4 | exec 2>&1 | ||
5 | exec </dev/null | ||
6 | |||
7 | user=www | ||
8 | user=root | ||
9 | |||
10 | echo "* Starting tcpsvd for httpd [$$]" | ||
11 | exec \ | ||
12 | env - PATH="$PATH" \ | ||
13 | softlimit \ | ||
14 | tcpsvd \ | ||
15 | -v -E -l localhost -c 5 \ | ||
16 | 0 88 \ | ||
17 | setuidgid "$user" \ | ||
18 | httpd -vvv -i -h /pub/httpd_root | ||
diff --git a/examples/var_service/httpd/w_log b/examples/var_service/httpd/w_log new file mode 100755 index 000000000..34b19b373 --- /dev/null +++ b/examples/var_service/httpd/w_log | |||
@@ -0,0 +1,4 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | cd log/logdir || exit 1 | ||
4 | watch -n2 'w=`ttysize w`; h=`ttysize h`; tail -$((h-3)) current 2>&1 | cut -b0-$((w-2))' | ||
diff --git a/examples/var_service/inetd/inetd.conf b/examples/var_service/inetd/inetd.conf new file mode 100644 index 000000000..c5f151b86 --- /dev/null +++ b/examples/var_service/inetd/inetd.conf | |||
@@ -0,0 +1,18 @@ | |||
1 | # [ADDR:]service_name must be in /etc/services, or port number | ||
2 | # socket_type stream/dgram/raw/rdm/seqpacket | ||
3 | # protocol tcp/udp | ||
4 | # wait/nowait[.max] wait is usually for udp, nowait for tcp | ||
5 | # max: max copies to run | ||
6 | # user[.group] or user[:group] user and group to run under | ||
7 | # binary program to run | ||
8 | # arg0 arg1 arg2... arguments, INCLUDING program name (arg0) | ||
9 | |||
10 | # serv socket pro w/nw user binary args | ||
11 | |||
12 | # IPv6 | ||
13 | 555 dgram udp6 wait root echo echo Hello IPv6 udp world | ||
14 | # ...with ADDR prefix: | ||
15 | ::1:444 stream tcp6 nowait root echo echo Hello IPv6 localhost | ||
16 | |||
17 | # Rarely seen case: tcp *wait* service | ||
18 | telnet stream tcp wait root telnetd telnetd -w10 | ||
diff --git a/examples/var_service/inetd/log/run b/examples/var_service/inetd/log/run new file mode 100755 index 000000000..560d1b19f --- /dev/null +++ b/examples/var_service/inetd/log/run | |||
@@ -0,0 +1,21 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | user=logger | ||
4 | |||
5 | logdir="/var/log/service/`(cd ..;basename $PWD)`" | ||
6 | mkdir -p "$logdir" 2>/dev/null | ||
7 | chown -R "$user": "$logdir" | ||
8 | chmod -R go-rwxst,u+rwX "$logdir" | ||
9 | rm logdir | ||
10 | ln -s "$logdir" logdir | ||
11 | |||
12 | # make this dir accessible to logger | ||
13 | chmod a+rX . | ||
14 | |||
15 | exec >/dev/null | ||
16 | exec 2>&1 | ||
17 | exec \ | ||
18 | env - PATH="$PATH" \ | ||
19 | softlimit \ | ||
20 | setuidgid "$user" \ | ||
21 | svlogd -tt "$logdir" | ||
diff --git a/examples/var_service/inetd/p_log b/examples/var_service/inetd/p_log new file mode 100755 index 000000000..a2521be05 --- /dev/null +++ b/examples/var_service/inetd/p_log | |||
@@ -0,0 +1,4 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | cd log/logdir || exit 1 | ||
4 | cat @* current | $PAGER | ||
diff --git a/examples/var_service/inetd/run b/examples/var_service/inetd/run new file mode 100755 index 000000000..910c1b331 --- /dev/null +++ b/examples/var_service/inetd/run | |||
@@ -0,0 +1,17 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | #exec >/dev/null | ||
4 | exec 2>&1 | ||
5 | exec </dev/null | ||
6 | |||
7 | echo "* Starting inetd [$$]" | ||
8 | exec \ | ||
9 | env - PATH="$PATH" \ | ||
10 | softlimit \ | ||
11 | inetd -f -e "$PWD/inetd.conf" | ||
12 | |||
13 | # inetd [-f] [-q len] [conf] | ||
14 | # -f Run in foreground | ||
15 | # -e Log to stderr (default is syslog) | ||
16 | # -q N Set the size of the socket listen queue to N | ||
17 | # (default: 128) | ||
diff --git a/examples/var_service/inetd/w_log b/examples/var_service/inetd/w_log new file mode 100755 index 000000000..34b19b373 --- /dev/null +++ b/examples/var_service/inetd/w_log | |||
@@ -0,0 +1,4 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | cd log/logdir || exit 1 | ||
4 | watch -n2 'w=`ttysize w`; h=`ttysize h`; tail -$((h-3)) current 2>&1 | cut -b0-$((w-2))' | ||
diff --git a/examples/var_service/nmeter/run b/examples/var_service/nmeter/run index fa0837bc4..7e51124e1 100755 --- a/examples/var_service/nmeter/run +++ b/examples/var_service/nmeter/run | |||
@@ -1,21 +1,20 @@ | |||
1 | #!/bin/sh | 1 | #!/bin/sh |
2 | 2 | ||
3 | exec >/dev/null | ||
4 | exec 2>&1 | ||
5 | exec </dev/null | ||
6 | |||
3 | # Since per-process /proc/net/ (-> /proc/self/net/) appeared, | 7 | # Since per-process /proc/net/ (-> /proc/self/net/) appeared, |
4 | # we need to be root | 8 | # we need to be root |
5 | user=root | 9 | user="root" |
6 | tty="/dev/tty9" | 10 | tty="/dev/tty9" |
7 | |||
8 | chmod -R a+X . # or else env will moan | ||
9 | chown $user: $tty # devfs made happy | ||
10 | |||
11 | cmd="nmeter '%t %c x %x p%p f %f b %b m %m if%[nif]'" | 11 | cmd="nmeter '%t %c x %x p%p f %f b %b m %m if%[nif]'" |
12 | 12 | ||
13 | exec >/dev/null | 13 | chmod -R a+X . # or else env will moan |
14 | exec 2>&1 | 14 | chown "$user": "$tty" # devfs made happy |
15 | exec </dev/null | ||
16 | 15 | ||
17 | eval exec \ | 16 | eval exec \ |
18 | setuidgid "$user" \ | ||
19 | env - PATH="$PATH" \ | 17 | env - PATH="$PATH" \ |
18 | setuidgid "$user" \ | ||
20 | <"$tty" >"$tty" 2>&1 \ | 19 | <"$tty" >"$tty" 2>&1 \ |
21 | $cmd | 20 | $cmd |