aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2009-11-08 00:55:39 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2009-11-08 00:55:39 +0100
commitf5c2f72917e5f75634665f67a6105e1e82ece875 (patch)
treee1c6a85ae214ad33d4bf38e03f0a3548ad1525f6
parent44f8d013994c20a53836a8768bd488130c7df9bc (diff)
downloadbusybox-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>
-rwxr-xr-xexamples/var_service/ftpd/log/run21
-rwxr-xr-xexamples/var_service/ftpd/p_log4
-rwxr-xr-xexamples/var_service/ftpd/run17
-rwxr-xr-xexamples/var_service/ftpd/w_log4
-rw-r--r--examples/var_service/getty_tty1/alt08x16+unimap.fntbin0 -> 5124 bytes
-rwxr-xr-xexamples/var_service/getty_tty1/cfg26
-rw-r--r--examples/var_service/getty_tty1/koi8r_to_uni.trans256
-rwxr-xr-xexamples/var_service/getty_tty1/login.sh12
-rw-r--r--examples/var_service/getty_tty1/ru_koi8r.keymap183
-rwxr-xr-xexamples/var_service/getty_tty1/run30
-rwxr-xr-xexamples/var_service/gpm/run15
-rwxr-xr-xexamples/var_service/httpd/log/run21
-rwxr-xr-xexamples/var_service/httpd/p_log4
-rwxr-xr-xexamples/var_service/httpd/run18
-rwxr-xr-xexamples/var_service/httpd/w_log4
-rw-r--r--examples/var_service/inetd/inetd.conf18
-rwxr-xr-xexamples/var_service/inetd/log/run21
-rwxr-xr-xexamples/var_service/inetd/p_log4
-rwxr-xr-xexamples/var_service/inetd/run17
-rwxr-xr-xexamples/var_service/inetd/w_log4
-rwxr-xr-xexamples/var_service/nmeter/run17
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
3user=logger
4
5logdir="/var/log/service/`(cd ..;basename $PWD)`"
6mkdir -p "$logdir" 2>/dev/null
7chown -R "$user": "$logdir"
8chmod -R go-rwxst,u+rwX "$logdir"
9rm logdir
10ln -s "$logdir" logdir
11
12# make this dir accessible to logger
13chmod a+rX .
14
15exec >/dev/null
16exec 2>&1
17exec \
18env - PATH="$PATH" \
19softlimit \
20setuidgid "$user" \
21svlogd -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
3cd log/logdir || exit 1
4cat @* 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
4exec 2>&1
5exec </dev/null
6
7user=www
8user=root
9
10exec \
11env - PATH="$PATH" \
12softlimit \
13tcpsvd \
14 -vE -l 0 -c 40 \
15 0.0.0.0 21 \
16setuidgid "$user" \
17ftpd -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
3cd log/logdir || exit 1
4watch -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
3if test x"$TERM" = x"" -o x"$TERM" = x"unknown"; then
4 TERM="linux"
5 echo "* Setting TERM='$TERM'"
6fi
7export TERM
8
9ttyname=`tty`
10ttybase="${ttyname%%[0123456789]*}" # strip numeric tail
11
12if 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"
26fi
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 @@
10x00 U+0000 # NULL (NUL)
20x01 U+0001 # START OF HEADING (SOH)
30x02 U+0002 # START OF TEXT (STX)
40x03 U+0003 # END OF TEXT (ETX)
50x04 U+0004 # END OF TRANSMISSION (EOT)
60x05 U+0005 # ENQUIRY (ENQ)
70x06 U+0006 # ACKNOWLEDGE (ACK)
80x07 U+0007 # BELL (BEL)
90x08 U+0008 # BACKSPACE (BS)
100x09 U+0009 # CHARACTER TABULATION (HT)
110x0a U+000A # LINE FEED (LF)
120x0b U+000B # LINE TABULATION (VT)
130x0c U+000C # FORM FEED (FF)
140x0d U+000D # CARRIAGE RETURN (CR)
150x0e U+000E # SHIFT OUT (SO)
160x0f U+000F # SHIFT IN (SI)
170x10 U+0010 # DATALINK ESCAPE (DLE)
180x11 U+0011 # DEVICE CONTROL ONE (DC1)
190x12 U+0012 # DEVICE CONTROL TWO (DC2)
200x13 U+0013 # DEVICE CONTROL THREE (DC3)
210x14 U+0014 # DEVICE CONTROL FOUR (DC4)
220x15 U+0015 # NEGATIVE ACKNOWLEDGE (NAK)
230x16 U+0016 # SYNCHRONOUS IDLE (SYN)
240x17 U+0017 # END OF TRANSMISSION BLOCK (ETB)
250x18 U+0018 # CANCEL (CAN)
260x19 U+0019 # END OF MEDIUM (EM)
270x1a U+001A # SUBSTITUTE (SUB)
280x1b U+001B # ESCAPE (ESC)
290x1c U+001C # FILE SEPARATOR (IS4)
300x1d U+001D # GROUP SEPARATOR (IS3)
310x1e U+001E # RECORD SEPARATOR (IS2)
320x1f U+001F # UNIT SEPARATOR (IS1)
330x20 U+0020 # SPACE
340x21 U+0021 # EXCLAMATION MARK
350x22 U+0022 # QUOTATION MARK
360x23 U+0023 # NUMBER SIGN
370x24 U+0024 # DOLLAR SIGN
380x25 U+0025 # PERCENT SIGN
390x26 U+0026 # AMPERSAND
400x27 U+0027 # APOSTROPHE
410x28 U+0028 # LEFT PARENTHESIS
420x29 U+0029 # RIGHT PARENTHESIS
430x2a U+002A # ASTERISK
440x2b U+002B # PLUS SIGN
450x2c U+002C # COMMA
460x2d U+002D # HYPHEN-MINUS
470x2e U+002E # FULL STOP
480x2f U+002F # SOLIDUS
490x30 U+0030 # DIGIT ZERO
500x31 U+0031 # DIGIT ONE
510x32 U+0032 # DIGIT TWO
520x33 U+0033 # DIGIT THREE
530x34 U+0034 # DIGIT FOUR
540x35 U+0035 # DIGIT FIVE
550x36 U+0036 # DIGIT SIX
560x37 U+0037 # DIGIT SEVEN
570x38 U+0038 # DIGIT EIGHT
580x39 U+0039 # DIGIT NINE
590x3a U+003A # COLON
600x3b U+003B # SEMICOLON
610x3c U+003C # LESS-THAN SIGN
620x3d U+003D # EQUALS SIGN
630x3e U+003E # GREATER-THAN SIGN
640x3f U+003F # QUESTION MARK
650x40 U+0040 # COMMERCIAL AT
660x41 U+0041 # LATIN CAPITAL LETTER A
670x42 U+0042 # LATIN CAPITAL LETTER B
680x43 U+0043 # LATIN CAPITAL LETTER C
690x44 U+0044 # LATIN CAPITAL LETTER D
700x45 U+0045 # LATIN CAPITAL LETTER E
710x46 U+0046 # LATIN CAPITAL LETTER F
720x47 U+0047 # LATIN CAPITAL LETTER G
730x48 U+0048 # LATIN CAPITAL LETTER H
740x49 U+0049 # LATIN CAPITAL LETTER I
750x4a U+004A # LATIN CAPITAL LETTER J
760x4b U+004B # LATIN CAPITAL LETTER K
770x4c U+004C # LATIN CAPITAL LETTER L
780x4d U+004D # LATIN CAPITAL LETTER M
790x4e U+004E # LATIN CAPITAL LETTER N
800x4f U+004F # LATIN CAPITAL LETTER O
810x50 U+0050 # LATIN CAPITAL LETTER P
820x51 U+0051 # LATIN CAPITAL LETTER Q
830x52 U+0052 # LATIN CAPITAL LETTER R
840x53 U+0053 # LATIN CAPITAL LETTER S
850x54 U+0054 # LATIN CAPITAL LETTER T
860x55 U+0055 # LATIN CAPITAL LETTER U
870x56 U+0056 # LATIN CAPITAL LETTER V
880x57 U+0057 # LATIN CAPITAL LETTER W
890x58 U+0058 # LATIN CAPITAL LETTER X
900x59 U+0059 # LATIN CAPITAL LETTER Y
910x5a U+005A # LATIN CAPITAL LETTER Z
920x5b U+005B # LEFT SQUARE BRACKET
930x5c U+005C # REVERSE SOLIDUS
940x5d U+005D # RIGHT SQUARE BRACKET
950x5e U+005E # CIRCUMFLEX ACCENT
960x5f U+005F # LOW LINE
970x60 U+0060 # GRAVE ACCENT
980x61 U+0061 # LATIN SMALL LETTER A
990x62 U+0062 # LATIN SMALL LETTER B
1000x63 U+0063 # LATIN SMALL LETTER C
1010x64 U+0064 # LATIN SMALL LETTER D
1020x65 U+0065 # LATIN SMALL LETTER E
1030x66 U+0066 # LATIN SMALL LETTER F
1040x67 U+0067 # LATIN SMALL LETTER G
1050x68 U+0068 # LATIN SMALL LETTER H
1060x69 U+0069 # LATIN SMALL LETTER I
1070x6a U+006A # LATIN SMALL LETTER J
1080x6b U+006B # LATIN SMALL LETTER K
1090x6c U+006C # LATIN SMALL LETTER L
1100x6d U+006D # LATIN SMALL LETTER M
1110x6e U+006E # LATIN SMALL LETTER N
1120x6f U+006F # LATIN SMALL LETTER O
1130x70 U+0070 # LATIN SMALL LETTER P
1140x71 U+0071 # LATIN SMALL LETTER Q
1150x72 U+0072 # LATIN SMALL LETTER R
1160x73 U+0073 # LATIN SMALL LETTER S
1170x74 U+0074 # LATIN SMALL LETTER T
1180x75 U+0075 # LATIN SMALL LETTER U
1190x76 U+0076 # LATIN SMALL LETTER V
1200x77 U+0077 # LATIN SMALL LETTER W
1210x78 U+0078 # LATIN SMALL LETTER X
1220x79 U+0079 # LATIN SMALL LETTER Y
1230x7a U+007A # LATIN SMALL LETTER Z
1240x7b U+007B # LEFT CURLY BRACKET
1250x7c U+007C # VERTICAL LINE
1260x7d U+007D # RIGHT CURLY BRACKET
1270x7e U+007E # TILDE
1280x7f U+007F # DELETE (DEL)
1290x80 U+2500 # BOX DRAWINGS LIGHT HORIZONTAL
1300x81 U+2502 # BOX DRAWINGS LIGHT VERTICAL
1310x82 U+250C # BOX DRAWINGS LIGHT DOWN AND RIGHT
1320x83 U+2510 # BOX DRAWINGS LIGHT DOWN AND LEFT
1330x84 U+2514 # BOX DRAWINGS LIGHT UP AND RIGHT
1340x85 U+2518 # BOX DRAWINGS LIGHT UP AND LEFT
1350x86 U+251C # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
1360x87 U+2524 # BOX DRAWINGS LIGHT VERTICAL AND LEFT
1370x88 U+252C # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
1380x89 U+2534 # BOX DRAWINGS LIGHT UP AND HORIZONTAL
1390x8a U+253C # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
1400x8b U+2580 # UPPER HALF BLOCK
1410x8c U+2584 # LOWER HALF BLOCK
1420x8d U+2588 # FULL BLOCK
1430x8e U+258C # LEFT HALF BLOCK
1440x8f U+2590 # RIGHT HALF BLOCK
1450x90 U+2591 # LIGHT SHADE
1460x91 U+2592 # MEDIUM SHADE
1470x92 U+2593 # DARK SHADE
1480x93 U+2320 # TOP HALF INTEGRAL
1490x94 U+25A0 # BLACK SQUARE
1500x95 U+2219 # BULLET OPERATOR
1510x96 U+221A # SQUARE ROOT
1520x97 U+2248 # ALMOST EQUAL TO
1530x98 U+2264 # LESS-THAN OR EQUAL TO
1540x99 U+2265 # GREATER-THAN OR EQUAL TO
1550x9a U+00A0 # NO-BREAK SPACE
1560x9b U+2321 # BOTTOM HALF INTEGRAL
1570x9c U+00B0 # DEGREE SIGN
1580x9d U+00B2 # SUPERSCRIPT TWO
1590x9e U+00B7 # MIDDLE DOT
1600x9f U+00F7 # DIVISION SIGN
1610xa0 U+2550 # BOX DRAWINGS DOUBLE HORIZONTAL
1620xa1 U+2551 # BOX DRAWINGS DOUBLE VERTICAL
1630xa2 U+2552 # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
1640xa3 U+0451 # CYRILLIC SMALL LETTER IO
1650xa4 U+2553 # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
1660xa5 U+2554 # BOX DRAWINGS DOUBLE DOWN AND RIGHT
1670xa6 U+2555 # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
1680xa7 U+2556 # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
1690xa8 U+2557 # BOX DRAWINGS DOUBLE DOWN AND LEFT
1700xa9 U+2558 # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
1710xaa U+2559 # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
1720xab U+255A # BOX DRAWINGS DOUBLE UP AND RIGHT
1730xac U+255B # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
1740xad U+255C # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
1750xae U+255D # BOX DRAWINGS DOUBLE UP AND LEFT
1760xaf U+255E # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
1770xb0 U+255F # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
1780xb1 U+2560 # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
1790xb2 U+2561 # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
1800xb3 U+0401 # CYRILLIC CAPITAL LETTER IO
1810xb4 U+2562 # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
1820xb5 U+2563 # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
1830xb6 U+2564 # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
1840xb7 U+2565 # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
1850xb8 U+2566 # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
1860xb9 U+2567 # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
1870xba U+2568 # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
1880xbb U+2569 # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
1890xbc U+256A # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
1900xbd U+256B # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
1910xbe U+256C # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
1920xbf U+00A9 # COPYRIGHT SIGN
1930xc0 U+044E # CYRILLIC SMALL LETTER YU
1940xc1 U+0430 # CYRILLIC SMALL LETTER A
1950xc2 U+0431 # CYRILLIC SMALL LETTER BE
1960xc3 U+0446 # CYRILLIC SMALL LETTER TSE
1970xc4 U+0434 # CYRILLIC SMALL LETTER DE
1980xc5 U+0435 # CYRILLIC SMALL LETTER IE
1990xc6 U+0444 # CYRILLIC SMALL LETTER EF
2000xc7 U+0433 # CYRILLIC SMALL LETTER GHE
2010xc8 U+0445 # CYRILLIC SMALL LETTER HA
2020xc9 U+0438 # CYRILLIC SMALL LETTER I
2030xca U+0439 # CYRILLIC SMALL LETTER SHORT I
2040xcb U+043A # CYRILLIC SMALL LETTER KA
2050xcc U+043B # CYRILLIC SMALL LETTER EL
2060xcd U+043C # CYRILLIC SMALL LETTER EM
2070xce U+043D # CYRILLIC SMALL LETTER EN
2080xcf U+043E # CYRILLIC SMALL LETTER O
2090xd0 U+043F # CYRILLIC SMALL LETTER PE
2100xd1 U+044F # CYRILLIC SMALL LETTER YA
2110xd2 U+0440 # CYRILLIC SMALL LETTER ER
2120xd3 U+0441 # CYRILLIC SMALL LETTER ES
2130xd4 U+0442 # CYRILLIC SMALL LETTER TE
2140xd5 U+0443 # CYRILLIC SMALL LETTER U
2150xd6 U+0436 # CYRILLIC SMALL LETTER ZHE
2160xd7 U+0432 # CYRILLIC SMALL LETTER VE
2170xd8 U+044C # CYRILLIC SMALL LETTER SOFT SIGN
2180xd9 U+044B # CYRILLIC SMALL LETTER YERU
2190xda U+0437 # CYRILLIC SMALL LETTER ZE
2200xdb U+0448 # CYRILLIC SMALL LETTER SHA
2210xdc U+044D # CYRILLIC SMALL LETTER E
2220xdd U+0449 # CYRILLIC SMALL LETTER SHCHA
2230xde U+0447 # CYRILLIC SMALL LETTER CHE
2240xdf U+044A # CYRILLIC SMALL LETTER HARD SIGN
2250xe0 U+042E # CYRILLIC CAPITAL LETTER YU
2260xe1 U+0410 # CYRILLIC CAPITAL LETTER A
2270xe2 U+0411 # CYRILLIC CAPITAL LETTER BE
2280xe3 U+0426 # CYRILLIC CAPITAL LETTER TSE
2290xe4 U+0414 # CYRILLIC CAPITAL LETTER DE
2300xe5 U+0415 # CYRILLIC CAPITAL LETTER IE
2310xe6 U+0424 # CYRILLIC CAPITAL LETTER EF
2320xe7 U+0413 # CYRILLIC CAPITAL LETTER GHE
2330xe8 U+0425 # CYRILLIC CAPITAL LETTER HA
2340xe9 U+0418 # CYRILLIC CAPITAL LETTER I
2350xea U+0419 # CYRILLIC CAPITAL LETTER SHORT I
2360xeb U+041A # CYRILLIC CAPITAL LETTER KA
2370xec U+041B # CYRILLIC CAPITAL LETTER EL
2380xed U+041C # CYRILLIC CAPITAL LETTER EM
2390xee U+041D # CYRILLIC CAPITAL LETTER EN
2400xef U+041E # CYRILLIC CAPITAL LETTER O
2410xf0 U+041F # CYRILLIC CAPITAL LETTER PE
2420xf1 U+042F # CYRILLIC CAPITAL LETTER YA
2430xf2 U+0420 # CYRILLIC CAPITAL LETTER ER
2440xf3 U+0421 # CYRILLIC CAPITAL LETTER ES
2450xf4 U+0422 # CYRILLIC CAPITAL LETTER TE
2460xf5 U+0423 # CYRILLIC CAPITAL LETTER U
2470xf6 U+0416 # CYRILLIC CAPITAL LETTER ZHE
2480xf7 U+0412 # CYRILLIC CAPITAL LETTER VE
2490xf8 U+042C # CYRILLIC CAPITAL LETTER SOFT SIGN
2500xf9 U+042B # CYRILLIC CAPITAL LETTER YERU
2510xfa U+0417 # CYRILLIC CAPITAL LETTER ZE
2520xfb U+0428 # CYRILLIC CAPITAL LETTER SHA
2530xfc U+042D # CYRILLIC CAPITAL LETTER E
2540xfd U+0429 # CYRILLIC CAPITAL LETTER SHCHA
2550xfe U+0427 # CYRILLIC CAPITAL LETTER CHE
2560xff 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
3ttyname=`tty`
4ttybase="${ttyname%%[0123456789]*}" # strip numeric tail
5
6if 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"
10fi
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 @@
1keymaps 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 ===========
19keycode 1 = Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape SAK SAK
20keycode 2 = one exclam one exclam exclam exclam Meta_one Meta_one
21keycode 3 = two at two at nul nul Meta_two Meta_two
22keycode 4 = three numbersign three numbersign three three Meta_three Meta_three
23keycode 5 = four dollar four dollar Control_backslash Control_backslash Meta_four Meta_four
24keycode 6 = five percent five percent Control_bracketright Control_bracketright Meta_five Meta_five
25keycode 7 = six asciicircum six asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_six
26keycode 8 = seven ampersand seven ampersand Control_underscore Control_underscore Meta_seven Meta_seven
27keycode 9 = eight asterisk eight asterisk eight eight Meta_eight Meta_eight
28keycode 10 = nine parenleft nine parenleft nine nine Meta_nine Meta_nine
29keycode 11 = zero parenright zero parenright zero zero Meta_zero Meta_zero
30keycode 12 = minus underscore minus underscore Control_underscore Control_underscore Meta_minus Meta_minus
31keycode 13 = equal plus equal plus equal equal Meta_equal Meta_equal
32keycode 14 = Delete Delete Delete Delete BackSpace BackSpace Meta_Delete Meta_Delete
33keycode 15 = Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab
34keycode 16 = q Q 202 234 Control_q Control_q Meta_q Meta_q Meta_Control_q Meta_Control_q
35keycode 17 = w W 195 227 Control_w Control_w Meta_w Meta_w Meta_Control_w Meta_Control_w
36keycode 18 = e E 213 245 Control_e Control_e Meta_e Meta_e Meta_Control_e Meta_Control_e
37keycode 19 = r R 203 235 Control_r Control_r Meta_r Meta_r Meta_Control_r Meta_Control_r
38keycode 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 ===========
40keycode 21 = y Y 206 238 Control_y Control_y Meta_y Meta_y Meta_Control_y Meta_Control_y
41keycode 22 = u U 199 231 Control_u Control_u Meta_u Meta_u Meta_Control_u Meta_Control_u
42keycode 23 = i I 219 251 Control_i Control_i Meta_i Meta_i Meta_Control_i Meta_Control_i
43keycode 24 = o O 221 253 Control_o Control_o Meta_o Meta_o Meta_Control_o Meta_Control_o
44keycode 25 = p P 218 250 Control_p Control_p Meta_p Meta_p Meta_Control_p Meta_Control_p
45keycode 26 = bracketleft braceleft 200 232 Escape Escape Meta_bracketleft Meta_bracketleft
46keycode 27 = bracketright braceright 223 255 Control_bracketright Control_bracketright
47keycode 28 = Return
48# Shift+Ctrl - Cyrillic
49keycode 29 = Control AltGr_Lock Control AltGr_Lock Control Control Control Control Control Control
50keycode 30 = a A 198 230 Control_a Control_a Meta_a Meta_a Meta_Control_a Meta_Control_a
51keycode 31 = s S 217 249 Control_s Control_s Meta_s Meta_s Meta_Control_s Meta_Control_s
52keycode 32 = d D 215 247 Control_d Control_d Meta_d Meta_d Meta_Control_d Meta_Control_d
53keycode 33 = f F 193 225 Control_f Control_f Meta_f Meta_f Meta_Control_f Meta_Control_f
54keycode 34 = g G 208 240 Control_g Control_g Meta_g Meta_g Meta_Control_g Meta_Control_g
55keycode 35 = h H 210 242 Control_h Control_h Meta_h Meta_h Meta_Control_h Meta_Control_h
56keycode 36 = j J 207 239 Control_j Control_j Meta_j Meta_j Meta_Control_j Meta_Control_j
57keycode 37 = k K 204 236 Control_k Control_k Meta_k Meta_k Meta_Control_k Meta_Control_k
58keycode 38 = l L 196 228 Control_l Control_l Meta_l Meta_l Meta_Control_l Meta_Control_l
59keycode 39 = semicolon colon 214 246 semicolon semicolon Meta_semicolon Meta_semicolon
60keycode 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 ===========
62keycode 41 = grave asciitilde grave asciitilde nul nul Meta_grave Meta_grave
63keycode 42 = Shift
64keycode 43 = backslash bar backslash bar Control_backslash Control_backslash Meta_backslash Meta_backslash
65keycode 44 = z Z 209 241 Control_z Control_z Meta_z Meta_z Meta_Control_z Meta_Control_z
66keycode 45 = x X 222 254 Control_x Control_x Meta_x Meta_x Meta_Control_x Meta_Control_x
67keycode 46 = c C 211 243 Control_c Control_c Meta_c Meta_c Meta_Control_c Meta_Control_c
68keycode 47 = v V 205 237 Control_v Control_v Meta_v Meta_v Meta_Control_v Meta_Control_v
69keycode 48 = b B 201 233 Control_b Control_b Meta_b Meta_b Meta_Control_b Meta_Control_b
70keycode 49 = n N 212 244 Control_n Control_n Meta_n Meta_n Meta_Control_n Meta_Control_n
71keycode 50 = m M 216 248 Control_m Control_m Meta_m Meta_m Meta_Control_m Meta_Control_m
72keycode 51 = comma less 194 226 comma comma Meta_comma Meta_comma
73keycode 52 = period greater 192 224 Compose Compose Meta_period Meta_period
74keycode 53 = slash question slash question Delete Delete Meta_slash Meta_slash Meta_question Meta_question
75# Ctrl+Shift - Cyrillic (not working???)
76keycode 54 = Shift Shift Shift Shift AltGr_Lock AltGr_Lock Shift Shift Shift Shift
77keycode 55 = KP_Multiply
78keycode 56 = Alt
79keycode 57 = space space space space nul nul Meta_space Meta_space
80keycode 58 = Caps_Lock
81keycode 59 = F1 F11 F1 F11 F1 F1 Console_1 Console_1 Console_1 Console_1
82keycode 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 ===========
84keycode 61 = F3 F13 F3 F13 F3 F3 Console_3 Console_3 Console_3 Console_3
85keycode 62 = F4 F14 F4 F14 F4 F4 Console_4 Console_4 Console_4 Console_4
86keycode 63 = F5 F15 F5 F15 F5 F5 Console_5 Console_5 Console_5 Console_5
87keycode 64 = F6 F16 F6 F16 F6 F6 Console_6 Console_6 Console_6 Console_6
88keycode 65 = F7 F17 F7 F17 F7 F7 Console_7 Console_7 Console_7 Console_7
89keycode 66 = F8 F18 F8 F18 F8 F8 Console_8 Console_8 Console_8 Console_8
90keycode 67 = F9 F19 F9 F19 F9 F9 Console_9 Console_9 Console_9 Console_9
91keycode 68 = F10 F20 F10 F20 F10 F10 Console_10 Console_10 Console_10 Console_10
92keycode 69 = Num_Lock Bare_Num_Lock Num_Lock Bare_Num_Lock
93keycode 70 = Scroll_Lock Show_Memory Scroll_Lock Show_Memory Show_State Show_State
94keycode 71 = KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Ascii_7
95keycode 72 = KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Ascii_8
96keycode 73 = KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Ascii_9
97keycode 74 = KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract
98keycode 75 = KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Ascii_4
99keycode 76 = KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Ascii_5
100keycode 77 = KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Ascii_6
101keycode 78 = KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add
102keycode 79 = KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Ascii_1
103keycode 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 ===========
105keycode 81 = KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Ascii_3
106keycode 82 = KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Ascii_0
107keycode 83 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot Boot
108keycode 84 = Last_Console
109keycode 85 =
110keycode 86 = less greater less greater less less Meta_less Meta_less
111keycode 87 = F11 F11 F11 F11 F11 F11 Console_11 Console_11 Console_11 Console_11
112keycode 88 = F12 F12 F12 F12 F12 F12 Console_12 Console_12 Console_12 Console_12
113keycode 89 =
114keycode 90 =
115keycode 91 =
116keycode 92 =
117keycode 93 =
118keycode 94 =
119keycode 95 =
120keycode 96 = KP_Enter
121keycode 97 = Control
122keycode 98 = KP_Divide
123keycode 99 = Control_backslash
124# Right Alt - Cyrillic
125keycode 100 = AltGr_Lock
126#============== plain ========= shift========== plain cyr ===== shift cyr ===== ctrl ================== ctrl cyr ============== alt =================== alt cyr =============== ctrlalt =============== ctrlalt cyr ===========
127keycode 101 = Break
128keycode 102 = Find
129keycode 103 = Up
130keycode 104 = Prior Scroll_Backward Prior Scroll_Backward Prior Prior Prior Prior Prior Prior
131keycode 105 = Left Left Left Left Left Left Left Left Decr_Console Decr_Console
132keycode 106 = Right Right Right Right Right Right Right Right Incr_Console Incr_Console
133keycode 107 = Select
134keycode 108 = Down
135keycode 109 = Next Scroll_Forward Next Scroll_Forward Next Next Next Next Next Next
136keycode 110 = Insert
137keycode 111 = Remove Remove Remove Remove Remove Remove Remove Remove Boot Boot
138keycode 112 = Macro
139keycode 113 = F13
140keycode 114 = F14
141keycode 115 = Help
142keycode 116 = Do
143keycode 117 = F17
144keycode 118 = KP_MinPlus
145keycode 119 = Pause
146keycode 120 =
147#============== plain ========= shift========== plain cyr ===== shift cyr ===== ctrl ================== ctrl cyr ============== alt =================== alt cyr =============== ctrlalt =============== ctrlalt cyr ===========
148keycode 121 =
149keycode 122 =
150keycode 123 =
151keycode 124 =
152keycode 125 =
153keycode 126 =
154keycode 127 =
155
156string F1 = "\033[[A"
157string F2 = "\033[[B"
158string F3 = "\033[[C"
159string F4 = "\033[[D"
160string F5 = "\033[[E"
161string F6 = "\033[17~"
162string F7 = "\033[18~"
163string F8 = "\033[19~"
164string F9 = "\033[20~"
165string F10 = "\033[21~"
166string F11 = "\033[23~"
167string F12 = "\033[24~"
168string F13 = "\033[25~"
169string F14 = "\033[26~"
170string F15 = "\033[28~"
171string F16 = "\033[29~"
172string F17 = "\033[31~"
173string F18 = "\033[32~"
174string F19 = "\033[33~"
175string F20 = "\033[34~"
176string Find = "\033[1~"
177string Insert = "\033[2~"
178string Remove = "\033[3~"
179string Select = "\033[4~"
180string Prior = "\033[5~"
181string Next = "\033[6~"
182string Macro = "\033[M"
183string 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
3exec >/dev/null
4exec 2>&1
5exec </dev/null
6
7user=root
8baud=38400
9delay=3
10export TERM=linux
11
12tty="/dev/${PWD##*/getty_}"
13
14if ! test -e "$tty"; then
15 exec env - sleep 32000
16fi
17
18sleep "$delay"
19
20chown "$user" "$tty" # - devfs made happy
21
22exec <"$tty" >"$tty" 2>&1
23# using . in order to be able to set env (TERM etc) in cfg
24test -x ./cfg && . ./cfg
25
26exec \
27env - "TERM=$TERM" PATH="$PATH" LOGIN_PRE_SUID_SCRIPT="$PWD/login.sh" \
28softlimit \
29setuidgid "$user" \
30getty "$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
3exec >/dev/null
4exec 2>&1
5exec </dev/null
6
7user=root
8options="-D -2 -m /dev/psaux -t ps2"
9#options="-D -2 -m /dev/ttyS0 -t bare"
10
11exec \
12env - PATH="$PATH" \
13softlimit \
14setuidgid "$user" \
15gpm $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
3user=logger
4
5logdir="/var/log/service/`(cd ..;basename $PWD)`"
6mkdir -p "$logdir" 2>/dev/null
7chown -R "$user": "$logdir"
8chmod -R go-rwxst,u+rwX "$logdir"
9rm logdir
10ln -s "$logdir" logdir
11
12# make this dir accessible to logger
13chmod a+rX .
14
15exec >/dev/null
16exec 2>&1
17exec \
18env - PATH="$PATH" \
19softlimit \
20setuidgid "$user" \
21svlogd -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
3cd log/logdir || exit 1
4cat @* 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
4exec 2>&1
5exec </dev/null
6
7user=www
8user=root
9
10echo "* Starting tcpsvd for httpd [$$]"
11exec \
12env - PATH="$PATH" \
13softlimit \
14tcpsvd \
15 -v -E -l localhost -c 5 \
16 0 88 \
17setuidgid "$user" \
18httpd -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
3cd log/logdir || exit 1
4watch -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
13555 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
18telnet 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
3user=logger
4
5logdir="/var/log/service/`(cd ..;basename $PWD)`"
6mkdir -p "$logdir" 2>/dev/null
7chown -R "$user": "$logdir"
8chmod -R go-rwxst,u+rwX "$logdir"
9rm logdir
10ln -s "$logdir" logdir
11
12# make this dir accessible to logger
13chmod a+rX .
14
15exec >/dev/null
16exec 2>&1
17exec \
18env - PATH="$PATH" \
19softlimit \
20setuidgid "$user" \
21svlogd -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
3cd log/logdir || exit 1
4cat @* 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
4exec 2>&1
5exec </dev/null
6
7echo "* Starting inetd [$$]"
8exec \
9env - PATH="$PATH" \
10softlimit \
11inetd -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
3cd log/logdir || exit 1
4watch -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
3exec >/dev/null
4exec 2>&1
5exec </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
5user=root 9user="root"
6tty="/dev/tty9" 10tty="/dev/tty9"
7
8chmod -R a+X . # or else env will moan
9chown $user: $tty # devfs made happy
10
11cmd="nmeter '%t %c x %x p%p f %f b %b m %m if%[nif]'" 11cmd="nmeter '%t %c x %x p%p f %f b %b m %m if%[nif]'"
12 12
13exec >/dev/null 13chmod -R a+X . # or else env will moan
14exec 2>&1 14chown "$user": "$tty" # devfs made happy
15exec </dev/null
16 15
17eval exec \ 16eval exec \
18setuidgid "$user" \
19env - PATH="$PATH" \ 17env - PATH="$PATH" \
18setuidgid "$user" \
20<"$tty" >"$tty" 2>&1 \ 19<"$tty" >"$tty" 2>&1 \
21$cmd 20$cmd