X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=userv.git;a=blobdiff_plain;f=spec.ps;h=f482349e7703bc63ee1ed539e4e9c0798ff67537;hp=49b65741d9d0bd3022727a85a5d7c43da780c5c0;hb=af5c97dd0b7e37e1fb3ad1f7ac81fa31a48be7f8;hpb=bf70bf4bd61f77133984b7bb84d2ada358333796 diff --git a/spec.ps b/spec.ps index 49b6574..f482349 100644 --- a/spec.ps +++ b/spec.ps @@ -1,6 +1,6 @@ %!PS-Adobe-3.0 %%Creator: Basser Lout Version 3.10 (November 1996) -%%CreationDate: Sun Apr 18 19:53:35 1999 +%%CreationDate: Sun Aug 13 13:16:53 2000 %%DocumentData: Binary %%DocumentNeededResources: (atend) %%DocumentMedia: Plain 595 842 0 white () @@ -268,8 +268,8 @@ grestore 0.6953 1.0000 scale 200 fnt31 1031 -43()m grestore -240 fnt82 4236 12513(0.61.4)m -9066 609 0 609 240 240 60 0 11253 LoutGr2 +240 fnt82 4305 12515(1.0.1)m +9066 609 0 609 240 240 60 0 11255 LoutGr2 newpath 0 ysize 0.3 ft sub moveto xsize 0 rlineto 0 0.1 ft rlineto @@ -278,12 +278,12 @@ closepath fill grestore 320 fnt84 0 5(0.1.)m 628(Abstract)s grestore -0 10791(This)m 476(is)s +0 10961(This)m 476(is)s 686(a)s 852(speci\207cation)s 2117(for)s 2455(a)s 2621(Unix)s 3155(system)s 3879(f)s 2(acility)k 4606(to)s 4845(allo)s 6(w)k 5424(one)s 5826(program)s 6696(to)s 6935(in)s 9(v)k 4(ok)k 2(e)k -7628(another)s 8405(when)s 0 10551(only)m 480(limited)s 1214(trust)s -1698(e)s 3(xists)k 2290(between)s 3144(them.)s 9066 610 0 610 240 240 60 0 9587 LoutGr2 +7628(another)s 8405(when)s 0 10721(only)m 480(limited)s 1214(trust)s +1698(e)s 3(xists)k 2290(between)s 3144(them.)s 9066 670 0 670 240 240 60 0 9697 LoutGr2 newpath 0 ysize 0.3 ft sub moveto xsize 0 rlineto 0 0.1 ft rlineto @@ -291,102 +291,95 @@ xsize neg 0 rlineto closepath fill grestore 320 fnt84 -0 6(0.2.)m 628(Contents)s -grestore -240 fnt84 0 9175(1.)m 1200(Intr)s 4(oduction)k -8953(3)s 0 8818(2.)m 1200(Client)s 1883(pr)s 4(ogram)k -2839(usage)s 8952(4)s 240 fnt82 0 8579(2.1.)m 1200(Options)s -8952(4)s 0 8342(2.2.)m 1200(Security-o)s 3(v)k 3(erriding)k -3118(options)s 8958(7)s 240 fnt84 0 7997(3.)m 1200(Execution)s -2279(en)s 9(vir)k 4(onment)k 3627(of)s 3899(the)s -4273(ser)s 2(vice)k 5030(pr)s 4(ogram)k 8952(8)s -240 fnt82 0 7758(3.1.)m 1200(File)s 1627(descriptors)s 8959(8)s -0 7521(3.2.)m 1200(En)s 9(vironment)k 8955(9)s 240 fnt84 -0 7176(4.)m 1200(Ser)s 2(vice-side)k 2474(con\207guration)s 8831(10)s -240 fnt82 0 6937(4.1.)m 1200(Con\207guration)s 2587(\207le)s 2948(syntax)s -8831(10)s 0 6700(4.2.)m 1200(Con\207guration)s 2587(\207le)s 2948(directi)s 6(v)k 3(es)k -8831(10)s 0 6462(4.3.)m 1200(Errors)s 1847(in)s 2090(the)s -2438(con\207guration)s 3771(\207le)s 8833(16)s 0 6225(4.4.)m 1200(Def)s 2(aults)k -8838(17)s 240 fnt84 0 5880(5.)m 1200(Inf)s 6(ormation)k -2498(passed)s 3231(thr)s 4(ough)k 4106(the)s 4480(client/daemon)s -5969(combination)s 8832(18)s 0 5523(6.)m 1200(A)s 6(pplications)k -2536(and)s 2977(notes)s 3562(on)s 3871(use)s 8831(20)s -240 fnt82 0 5284(6.1.)m 1200(Standard)s 2108(services)s 2928(and)s -3332(directory)s 4248(management)s 8831(20)s 0 5046(6.2.)m 1200(Reducing)s -2171(the)s 2519(number)s 3310(of)s 3581(absolutely)s 4618(pri)s 6(vile)k 3(ged)k -5636(subsystems)s 8831(20)s 0 4808(6.3.)m 1200(Do)s 1546(not)s -1912(gi)s 6(v)k 3(e)k 2371(a)s 3(w)k 2(ay)k -2925(e)s 3(xcessi)k 6(v)k 3(e)k 3885(pri)s 6(vile)k 3(ge)k -4781(to)s gsave -5020 4862 translate -0.6953 1.0000 scale -240 fnt31 0 -52(userv)m +0 66(0.2.)m 628(Copyright)s 2109(Notice)s grestore -5520(-using)s 6171(f)s 2(acilities)k -8831(20)s 0 4570(6.4.)m gsave -1200 4624 translate +gsave +0 9457 translate 0.6953 1.0000 scale -240 fnt31 0 -52(userv)m +240 fnt31 0 -52(userv)m + grestore -1760(is)s -1970(not)s 2336(a)s 2502(replacement)s 3729(for)s gsave -4067 4624 translate +560 9403(is)m 770(Cop)s 2(yright)k 1799(1996-2000)s 2893(Ian)s +3255(Jackson.)s gsave +0 9049 translate 0.6953 1.0000 scale -240 fnt31 -0 -52(really)m +240 fnt31 0 -52(userv)m grestore -4727(and)s gsave -5131 4624 translate +544 8995(is)m 737(free)s +1146(softw)s 2(are;)k 2062(you)s 2460(can)s 2832(redistrib)s 4(ute)k +3955(it)s 4130(and/or)s 4784(modify)s 5512(it)s 5688(under)s +6276(the)s 6607(terms)s 7172(of)s 7426(the)s 7757(GNU)s +8315(General)s 0 8755(Public)m 659(License)s 1453(as)s 1698(published)s +2682(by)s 2971(the)s 3314(Free)s 3789(Softw)s 2(are)k +4699(F)s 3(oundation;)k 5894(either)s 6492(v)s 3(ersion)k +7245(2)s 7414(of)s 7680(the)s 8023(License,)s 8867(or)s +0 8515(\(at)m 311(your)s 810(option\))s 1550(an)s 3(y)k +1947(later)s 2430(v)s 3(ersion.)k 0 8107(This)m 476(program)s +1346(is)s 1556(distrib)s 4(uted)k 2632(in)s 2875(the)s +3223(hope)s 3745(that)s 4163(it)s 4355(will)s 4781(be)s +5063(useful,)s 5754(b)s 4(ut)k 240 fnt83 6116 8109(without)m +6898(any)s 7300(warr)s 3(anty)k 240 fnt82 8171 8107(;)m +8283(without)s 0 7866(e)m 6(v)k 3(en)k 500(the)s +848(implied)s 1636(w)s 2(arranty)k 2537(of)s 240 fnt83 +2808 7868(mer)m 8(c)k 3(hantability)k 240 fnt82 4367 7866(or)m +240 fnt83 4626 7868(\207tness)m 5279(for)s 5623(a)s 5798(particular)s +6833(purpose)s 240 fnt82 7598 7866(.)m 7702(See)s 8103(the)s +8451(GNU)s 0 7626(General)m 811(Public)s 1475(License)s 2274(for)s +2612(more)s 3159(details.)s 0 7218(Y)m 26(ou)k 442(should)s +1139(ha)s 4(v)k 3(e)k 1640(re)s 1821(cei)s 6(v)k 3(ed)k +2494(a)s 2660(cop)s 2(y)k 3178(of)s 3449(the)s +3797(GNU)s 4372(Gen)s 4768(er)s 4953(al)s 5180(Pub)s +5546(lic)s 5837(Li)s 6043(cense)s 6630(along)s 7215(with)s +gsave +7697 7272 translate 0.6953 1.0000 scale -240 fnt31 0 -52(sudo)m +240 fnt31 0 -52(userv)m grestore -8851(21)s -0 4331(6.5.)m 1200(Don')s 4(t)k 1814(gi)s 6(v)k 3(e)k -2273(access)s 2934(to)s 3173(general-purpose)s 4769(utilities)s 8851(21)s -9066 670 0 670 240 240 60 0 3080 LoutGr2 +8197(;)s 8309(if)s 8526(not,)s +0 6977(write)m 546(to)s 785(the)s 1133(Free)s 1613(Soft)s +2011(w)s 2(are)k 2529(F)s 3(oun)k 3016(da)s +3242(tion,)s 3721(59)s 4012(T)s 16(em)k 4434(ple)s +4782(Place)s 5355(-)s 5483(Suite)s 6030(330,)s 6497(Boston,)s +7283(MA)s 7726(02111-1307,)s 0 6737(USA.)m 9066 610 0 610 240 240 60 0 5773 LoutGr2 newpath 0 ysize 0.3 ft sub moveto xsize 0 rlineto 0 0.1 ft rlineto xsize neg 0 rlineto closepath fill grestore -320 fnt84 0 66(0.3.)m 628(Copyright)s 2109(Notice)s -grestore -gsave -0 2970 translate -0.6953 1.0000 scale -240 fnt31 -0 -460(userv)m -grestore -560 2916(is)m 770(Cop)s 2(yright)k 1799(1996-1999)s -2889(Ian)s 3251(Jackson.)s gsave -0 2357 translate +320 fnt84 0 6(0.3.)m +628(Contents)s +grestore +0 5479(1.)m 1200(Introduction)s 8962(3)s 0 5252(2.)m +1200(Client)s 1844(program)s 2714(usage)s 8952(4)s 0 5015(2.1.)m +1200(Options)s 8952(4)s 0 4778(2.2.)m 1200(Security-o)s 3(v)k 3(erriding)k +3118(options)s 8958(7)s 0 4541(3.)m 1200(Ex)s 3(ecution)k +2224(en)s 9(vironment)k 3484(of)s 3755(the)s 4103(service)s +4835(program)s 8959(8)s 0 4304(3.1.)m 1200(File)s 1627(descriptors)s +8959(8)s 0 4067(3.2.)m 1200(En)s 9(vironment)k 8955(9)s +0 3840(4.)m 1200(Service-side)s 2436(con\207guration)s 8831(10)s 0 3603(4.1.)m +1200(Con\207guration)s 2587(\207le)s 2948(syntax)s 8831(10)s 0 3366(4.2.)m +1200(Con\207guration)s 2587(\207le)s 2948(directi)s 6(v)k 3(es)k +8831(10)s 0 3128(4.3.)m 1200(Errors)s 1847(in)s 2090(the)s +2438(con\207guration)s 3771(\207le)s 8833(16)s 0 2890(4.4.)m 1200(Def)s 2(aults)k +8833(16)s 0 2663(5.)m 1200(Information)s 2398(passed)s 3094(through)s +3896(the)s 4244(client/daemon)s 5655(combination)s 8839(18)s 0 2425(6.)m +1200(Applications)s 2473(and)s 2877(notes)s 3433(on)s 3730(use)s +8831(20)s 0 2187(6.1.)m 1200(Examples)s 8831(20)s 0 1949(6.2.)m +1200(Standard)s 2108(services)s 2928(and)s 3332(directory)s 4248(management)s +8831(20)s 0 1711(6.3.)m 1200(Reducing)s 2171(the)s 2519(number)s +3310(of)s 3581(absolutely)s 4618(pri)s 6(vile)k 3(ged)k +5636(subsystems)s 8831(20)s 0 1473(6.4.)m 1200(Do)s 1546(not)s +1912(gi)s 6(v)k 3(e)k 2371(a)s 3(w)k 2(ay)k +2925(e)s 3(xcessi)k 6(v)k 3(e)k 3885(pri)s 6(vile)k 3(ge)k +4781(to)s gsave +5020 1527 translate 0.6953 1.0000 scale 240 fnt31 0 -52(userv)m grestore -544 2303(is)m -737(free)s 1146(softw)s 2(are;)k 2062(you)s 2460(can)s -2832(redistrib)s 4(ute)k 3955(it)s 4130(and/or)s 4784(modify)s -5512(it)s 5688(under)s 6276(the)s 6607(terms)s 7172(of)s -7426(the)s 7757(GNU)s 8315(General)s 0 2063(Public)m 659(License)s -1453(as)s 1698(published)s 2682(by)s 2971(the)s 3314(Free)s -3789(Softw)s 2(are)k 4699(F)s 3(oundation;)k 5894(either)s -6492(v)s 3(ersion)k 7245(2)s 7414(of)s 7680(the)s -8023(License,)s 8867(or)s 0 1823(\(at)m 311(your)s 810(option\))s -1550(an)s 3(y)k 1947(later)s 2430(v)s 3(ersion.)k -0 1415(This)m 476(program)s 1346(is)s 1556(distrib)s 4(uted)k -2632(in)s 2875(the)s 3223(hope)s 3745(that)s 4163(it)s -4355(will)s 4781(be)s 5063(useful,)s 5754(b)s 4(ut)k -240 fnt83 6116 1417(without)m 6898(any)s 7300(warr)s 3(anty)k -240 fnt82 8171 1415(;)m 8283(without)s 0 1174(e)m 6(v)k 3(en)k -500(the)s 848(implied)s 1636(w)s 2(arranty)k 2537(of)s -240 fnt83 2808 1176(mer)m 8(c)k 3(hantability)k 240 fnt82 -4367 1174(or)m 240 fnt83 4626 1176(\207tness)m 5279(for)s 5623(a)s -5798(particular)s 6833(purpose)s 240 fnt82 7598 1174(.)m 7702(See)s -8103(the)s 8451(GNU)s 0 934(General)m 811(Public)s 1475(License)s -2274(for)s 2612(more)s 3159(details.)s 0 52(User)m 511(service)s -1243(daemon)s 2058(and)s 2462(client)s 3052(speci\207cation)s 8472(0.61.4)s - +5520(-using)s 6171(f)s 2(acilities)k +8831(20)s 0 52(User)m 511(service)s 1243(daemon)s 2058(and)s +2462(client)s 3052(speci\207cation)s 8611(1.0.1)s grestore grestore @@ -424,24 +417,31 @@ gsave gsave 0 LoutMargSet grestore -240 fnt84 0 13842(2)m 240 fnt82 0 13254(Y)m 26(ou)k -442(should)s 1139(ha)s 4(v)k 3(e)k 1640(re)s -1821(cei)s 6(v)k 3(ed)k 2494(a)s 2660(cop)s 2(y)k -3178(of)s 3449(the)s 3797(GNU)s 4372(Gen)s 4768(er)s -4953(al)s 5180(Pub)s 5546(lic)s 5837(Li)s 6043(cense)s -6630(along)s 7215(with)s gsave -7697 13308 translate +240 fnt84 0 13842(2)m 240 fnt82 0 13252(6.5.)m gsave +1200 13306 translate 0.6953 1.0000 scale -240 fnt31 0 -52(userv)m +240 fnt31 +0 -52(userv)m grestore -8197(;)s -8309(if)s 8526(not,)s 0 13013(write)m 546(to)s 785(the)s -1133(Free)s 1613(Soft)s 2011(w)s 2(are)k 2529(F)s 3(oun)k -3016(da)s 3242(tion,)s 3721(59)s 4012(T)s 16(em)k -4434(ple)s 4782(Place)s 5355(-)s 5483(Suite)s 6030(330,)s -6497(Boston,)s 7283(MA)s 7726(02111-1307,)s 0 12773(USA.)m 0 52(0.61.4)m -4809(User)s 5320(service)s 6052(daemon)s 6867(and)s 7271(client)s -7861(speci\207cation)s +1760(can)s 2149(often)s 2697(replace)s gsave +3442 13306 translate +0.6953 1.0000 scale +240 fnt31 +0 -52(sudo)m +grestore +3842(,)s 3949(b)s 4(ut)k 4311(not)s +gsave +4677 13306 translate +0.6953 1.0000 scale +240 fnt31 0 -52(really)m +grestore +8851(21)s 0 13014(6.6.)m 1200(Error)s +1763(handling)s 2654(and)s 3058(input)s 3610(streams)s 4390(\(e)s 3(g)k +4745(stdin\))s 8832(22)s 0 12776(6.7.)m 1200(Don')s 4(t)k +1814(gi)s 6(v)k 3(e)k 2273(access)s 2934(to)s +3173(general-purpose)s 4769(utilities)s 8832(22)s 0 52(1.0.1)m 4809(User)s +5320(service)s 6052(daemon)s 6867(and)s 7271(client)s 7861(speci\207cation)s + grestore grestore @@ -527,7 +527,7 @@ grestore 0 10002(with)m 482(each)s 977(other)s 1528(in)s 1771(an)s 3(y)k 2168(une)s 3(xpected)k 3313(w)s 2(ays.)k 0 52(User)m 511(service)s 1243(daemon)s 2058(and)s 2462(client)s 3052(speci\207cation)s -8472(0.61.4)s +8611(1.0.1)s grestore grestore @@ -580,7 +580,7 @@ grestore 1382(pr)s 6(ogram)k 2737(usage)s grestore gsave -480 12321 translate +480 12081 translate 0.6953 1.0000 scale 240 fnt31 0 -52(userv)m gsave @@ -625,12 +625,12 @@ grestore 9029(\202])s grestore 240 fnt83 -0 11448(service-user)m 240 fnt82 1232 11446(speci\207es)m 2106(which)s 2748(user)s +0 11208(service-user)m 240 fnt82 1232 11206(speci\207es)m 2106(which)s 2748(user)s 3206(is)s 3416(to)s 3655(pro)s 3(vide)k 4439(the)s 4787(service.)s 5567(The)s 5995(user)s 6453(may)s 6919(be)s 7201(a)s 7367(login)s 7916(name)s 8490(or)s 8749(a)s -0 11206(numeric)m 836(uid,)s 1249(or)s gsave -1508 11260 translate +0 10966(numeric)m 836(uid,)s 1249(or)s gsave +1508 11020 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211)m @@ -638,12 +638,12 @@ grestore 1668(to)s 1907(indicate)s 2719(that)s 3137(the)s 3485(service)s 4217(user)s 4675(is)s 4885(to)s 5124(be)s 5406(the)s 5754(same)s 6301(as)s 6551(the)s 6899(calling)s 7602(user)s 13(.)k -0 10798(The)m 428(service)s 1160(name)s 1734(is)s 1944(interpreted)s -3036(by)s 3330(the)s 3678(userv)s 153 fnt82 4191 10887(1)m -240 fnt82 4311 10798(daemon)m 5126(on)s 5423(behalf)s 6092(of)s +0 10558(The)m 428(service)s 1160(name)s 1734(is)s 1944(interpreted)s +3036(by)s 3330(the)s 3678(userv)s 153 fnt82 4191 10647(1)m +240 fnt82 4311 10558(daemon)m 5126(on)s 5423(behalf)s 6092(of)s 6363(the)s 6711(service)s 7443(user)s 13(.)k 7932(It)s -8137(will)s 8563(often)s 0 10558(be)m 282(the)s 630(name)s -1204(of)s 1475(a)s 1641(program.)s 9066 670 0 670 240 240 60 0 9534 LoutGr2 +8137(will)s 8563(often)s 0 10318(be)m 282(the)s 630(name)s +1204(of)s 1475(a)s 1641(program.)s 9066 670 0 670 240 240 60 0 9294 LoutGr2 newpath 0 ysize 0.3 ft sub moveto xsize 0 rlineto 0 0.1 ft rlineto @@ -653,214 +653,249 @@ grestore 320 fnt84 0 66(2.1.)m 628(Options)s grestore -0 9072(Single-letter)m 1233(options)s 1983(may)s 2442(be)s +0 8832(Single-letter)m 1233(options)s 1983(may)s 2442(be)s 2718(combined)s 3714(as)s 3957(is)s 4161(usual)s 4714(with)s 5190(Unix)s 5718(programs,)s 6721(and)s 7119(the)s 7461(v)s 6(alue)k -8022(for)s 8354(such)s 8843(an)s 0 8832(option)m 669(may)s +8022(for)s 8354(such)s 8843(an)s 0 8592(option)m 669(may)s 1135(appear)s 1832(in)s 2075(the)s 2423(same)s 2970(ar)s 4(gument)k 3929(or)s 4188(in)s 4431(the)s 4779(ne)s 3(xt.)k gsave -120 8478 translate +120 8238 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211B)m grestore gsave -120 8238 translate +120 7998 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211\211builtin)m grestore -480 7944(Requests)m -1387(that)s 1797(a)s 1955(b)s 4(uiltin)k 2624(service)s -3347(be)s 3621(pro)s 3(vided.)k 4565(This)s 5033(is)s -5235(equi)s 6(v)k 6(alent)k 6270(to)s 6501(using)s -7065(the)s gsave -7405 7998 translate +480 7704(Re)m +742(quests)s 1385(that)s 1797(a)s 1956(b)s 4(uiltin)k +2627(ser)s 2905(vice)s 3352(be)s 3628(pro)s 3940(vid)s +4244(ed.)s 4567(This)s 5037(is)s 5241(equi)s 6(v)k +5762(a)s 5868(lent)s 6279(to)s 6512(us)s 6716(ing)s +7068(the)s gsave +7410 7758 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211\211override)m grestore -8457(option)s 480 7703(to)m -719(specify)s 1463(a)s 1629(string)s 2226(consisting)s 3249(of)s +8464(op)s 8697(tion)s +480 7463(to)m 719(spec)s 1137(i)s 1197(fy)s 1450(a)s +1616(string)s 2213(con)s 2556(sist)s 2874(ing)s 3233(of)s gsave -3520 7757 translate +3504 7517 translate 0.6953 1.0000 scale 240 fnt31 0 -52(execute\211builtin)m grestore -5081(follo)s 6(wed)k 5983(by)s -6277(the)s 240 fnt83 6625 7705(b)m 4(uiltin-service)k 240 fnt82 -8053 7703(requested,)m 480 7463(and)m 884(requesting)s 1933(a)s 2099(service)s -2831(user)s 3289(of)s gsave -3560 7517 translate -0.6953 1.0000 scale -240 fnt31 0 -52(\211)m -grestore -3720(\(indicating)s -4808(the)s 5156(calling)s 5859(user\).)s 480 7055(If)m 701(the)s -1039(b)s 4(uiltin)k 1707(ser)s 1985(vice)s 2429(be)s -2651(ing)s 3000(re)s 3181(quest)s 3686(ed)s 3961(re)s -4142(quires)s 4767(a)s 240 fnt83 4924 7057(service-)m 5667(ar)s 8(gument)k -240 fnt82 6631 7055(then)m 7090(this)s 7477(must)s 7992(be)s -8264(sup)s 8590(plied)s 480 6814(to)m 712(the)s 1052(client)s -1635(in)s 1870(the)s 2211(same)s 2750(ar)s 2935(gu)s -3170(ment)s 3700(as)s 3943(the)s 240 fnt83 4283 6816(b)m 4(uiltin-)k -4970(service)s 240 fnt82 5639 6814(.)m 5736(See)s 6129(`Di)s -6441(rec)s 6725(ti)s 6(v)k 3(es)k 7211(for)s -7541(chang)s 8106(ing)s 8457(e)s 3(x)k 8675(e)s -8777(cu)s 8998(-)s 480 6574(tion)m 909(set)s 1174(tings',)s -1825(page)s 2333(14)s 2627(for)s 2965(de)s 3187(tails)s -3635(of)s 3906(the)s 4254(b)s 4(uiltin)k 4931(ser)s -5209(vices)s 5751(a)s 4(v)k 6(ail)k 6200(able,)s -6705(and)s 7109(`Security-)s 8052(o)s 3(v)k 3(erriding)k -480 6334(op)m 713(tions',)s 1364(page)s 1872(7)s 2040(for)s -2378(de)s 2600(tails)s 3048(of)s 3319(the)s gsave -3667 6388 translate +5065(fol)s 5325(lo)s 6(wed)k +5962(by)s 6256(the)s 240 fnt83 6604 7465(b)m 4(uiltin-)k +7291(service)s 240 fnt82 8020 7463(re)m 8201(quest)s 8706(ed,)s +480 7223(and)m 870(re)s 1051(quest)s 1556(ing)s 1900(a)s +2052(ser)s 2330(vice)s 2769(user)s 3213(of)s gsave +3469 7277 translate +0.6953 1.0000 scale +240 fnt31 +0 -52(\211)m +grestore +3615(\(in)s 3877(di)s 4057(cat)s 4335(ing)s +4679(the)s 5012(call)s 5351(ing)s 5696(user\).)s 6322(If)s +6538(the)s 6871(b)s 4(uiltin)k 7534(ser)s 7812(vice)s +8251(be)s 8473(ing)s 8817(re)s 8998(-)s 480 6983(quest)m +985(ed)s 1254(re)s 1435(quires)s 2054(a)s 240 fnt83 +2204 6985(service-)m 2947(ar)s 8(gument)k 240 fnt82 3905 6983(then)m +4358(this)s 4738(must)s 5247(be)s 5513(sup)s 5839(plied)s +6359(to)s 6582(the)s 6914(client)s 7488(in)s 7715(the)s +8047(same)s 8578(ar)s 8763(gu)s 8998(-)s 480 6742(ment)m +1012(as)s 1256(the)s 240 fnt83 1598 6744(b)m 4(uiltin-)k +2285(service)s 240 fnt82 2954 6742(.)m 3052(See)s 3447(`Di)s +3759(rec)s 4043(ti)s 6(v)k 3(es)k 4530(for)s +4862(chang)s 5427(ing)s 5780(e)s 3(x)k 5998(e)s +6100(cu)s 6321(tion)s 6744(set)s 7009(tings',)s 7654(page)s +8156(14)s 8444(for)s 8776(de)s 8998(-)s 480 6502(tails)m +921(of)s 1184(the)s 1524(b)s 4(uiltin)k 2193(ser)s +2471(vices)s 3006(a)s 4(v)k 6(ail)k 3455(able,)s +3952(and)s 4348(`Security-)s 5291(o)s 3(v)k 3(erriding)k +6326(op)s 6559(tions',)s 7203(page)s 7703(7)s 7863(for)s +8193(de)s 8415(tails)s 8855(of)s 480 6261(the)m gsave +822 6315 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211\211override)m grestore -4728(op)s 4961(tions.)s 480 5926(The)m 897(actual)s -1511(service)s 2232(name)s 2794(passed)s 3479(will)s 3894(be)s -4164(the)s 240 fnt83 4501 5928(b)m 4(uiltin-service)k 240 fnt82 -5869 5926(;)m 5970(note)s 6427(that)s 6833(this)s 7218(actual)s -7832(service)s 8552(name)s 480 5686(\(as)m 809(opposed)s 1666(to)s -1905(the)s 2253(o)s 3(v)k 3(erride)k 3099(data\))s -3625(and)s 4029(the)s 240 fnt83 4377 5688(info-ar)m 8(gument)k -240 fnt82 5742 5686(s)m 5886(supplied)s 6755(will)s 7181(be)s -7463(ignored)s 8252(by)s 8546(most)s 480 5446(b)m 4(uiltin)k -1149(services;)s 2022(the)s 2361(o)s 3(v)k 3(erride)k -3199(mechanism)s 4339(and)s gsave -4735 5500 translate +1877(op)s 2110(tions.)s 2733(The)s 3155(ac)s +3360(tu)s 3541(al)s 3762(ser)s 4040(vice)s 4488(name)s +5056(passed)s 5746(will)s 6166(be)s 6442(the)s 240 fnt83 +6784 6263(b)m 4(uiltin-)k 7471(service)s 240 fnt82 8140 6261(;)m +8246(note)s 8708(that)s 480 6021(this)m 876(ac)s 1081(tu)s +1262(al)s 1489(ser)s 1767(vice)s 2221(name)s 2795(\(as)s +3124(op)s 3357(posed)s 3974(to)s 4213(the)s 4561(o)s 3(v)k 3(er)k +4980(ride)s 5407(data\))s 5933(and)s 6337(the)s 240 fnt83 +6685 6023(info-)m 7124(ar)s 8(gument)k 240 fnt82 8038 6021(s)m +8182(sup)s 8508(plied)s 480 5781(will)m 906(be)s 1188(ig)s +1367(nored)s 1970(by)s 2264(most)s 2789(b)s 4(uiltin)k +3466(ser)s 3744(vices;)s 4347(the)s 4695(o)s 3(v)k 3(er)k +5114(ride)s 5541(mech)s 6056(a)s 6162(nism)s 6687(and)s +gsave +7091 5835 translate 0.6953 1.0000 scale 240 fnt31 0 -52(execute\211builtin)m grestore -6287(will)s -6705(be)s 6978(used)s 7467(to)s 7697(ensure)s 8369(that)s -8778(the)s 480 5206(right)m 991(b)s 4(uiltin)k 1668(service)s -2400(is)s 2610(called)s 3238(with)s 3720(the)s 4068(right)s -240 fnt83 4579 5208(service-ar)m 8(gument)k 240 fnt82 6248 5206(s.)m -gsave -120 4866 translate +8652(will)s 480 5541(be)m 762(used)s +1259(to)s 1498(en)s 1721(sure)s 2175(that)s 2593(the)s +2941(right)s 3452(b)s 4(uiltin)k 4129(ser)s 4407(vice)s +4861(is)s 5071(called)s 5699(with)s 6181(the)s 6529(right)s +240 fnt83 7040 5543(service-)m 7783(ar)s 8(gument)k 240 fnt82 +8697 5541(s.)m gsave +120 5201 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211f)m gsave 288 0 translate 1.4219 1.0000 scale -240 fnt83 0 -52(fd)m +240 fnt83 0 -52(fd)m + grestore -561([)s -gsave +561([)s gsave 705 0 translate 1.4219 1.0000 scale 240 fnt83 0 -52(modi\207er)m 2(s)k grestore -1961(]=)s gsave +1961(]=)s +gsave 2249 0 translate 1.4219 1.0000 scale -240 fnt83 -0 -52(\207lename)m +240 fnt83 0 -52(\207lename)m grestore grestore gsave -120 4626 translate +120 4961 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211\211file)m gsave 1008 0 translate 1.4219 1.0000 scale -240 fnt83 0 -52(fd)m - +240 fnt83 +0 -52(fd)m grestore 1281([)s gsave 1425 0 translate 1.4219 1.0000 scale -240 fnt83 0 -52(modi\207er)m 2(s)k +240 fnt83 0 -52(modi\207er)m 2(s)k + grestore -2681(]=)s -gsave +2681(]=)s gsave 2969 0 translate 1.4219 1.0000 scale 240 fnt83 0 -52(\207lename)m grestore grestore -480 4332(Requests)m 1384(that)s 1791(data)s -2238(be)s 2509(copied)s 3194(in)s 3426(and)s 3819(out)s -4174(of)s 4434(the)s 4771(service)s 5492(using)s 6053(pipes.)s -6651(F)s 3(or)k 7029(each)s 7513(\207le)s 7863(or)s -8111(descriptor)s 480 4092(this)m 858(will)s 1266(be)s 1530(done)s -2033(by)s 2309(creating)s 3113(a)s 3261(pipe,)s 3761(one)s -4145(end)s 4531(of)s 4784(which)s 5407(is)s 5599(passed)s -6277(to)s 6498(the)s 6827(service)s 7541(program)s 8393(and)s -8778(the)s 480 3852(other)m 1028(end)s 1429(of)s 1697(which)s -2336(is)s 2543(passed)s 3236(to)s 3472(a)s 3635(cop)s 2(y)k -4149(of)s gsave -4417 3906 translate +480 4667(Requests)m 1384(that)s +1791(data)s 2238(be)s 2509(copied)s 3194(in)s 3426(and)s +3819(out)s 4174(of)s 4434(the)s 4771(service)s 5492(using)s +6053(pipes.)s 6651(F)s 3(or)k 7029(each)s 7513(\207le)s +7863(or)s 8111(descriptor)s 480 4427(this)m 858(will)s 1266(be)s +1530(done)s 2033(by)s 2309(creating)s 3113(a)s 3261(pipe,)s +3761(one)s 4145(end)s 4531(of)s 4784(which)s 5407(is)s +5599(passed)s 6277(to)s 6498(the)s 6827(service)s 7541(program)s +8393(and)s 8778(the)s 480 4187(other)m 1028(end)s 1429(of)s +1697(which)s 2336(is)s 2543(passed)s 3236(to)s 3472(a)s +3635(cop)s 2(y)k 4149(of)s gsave +4417 4241 translate 0.6953 1.0000 scale -240 fnt31 0 -52(cat)m +240 fnt31 0 -52(cat)m + grestore -4774(in)s 9(v)k 4(ok)k 2(ed)k -5586(by)s 5877(the)s 6222(client;)s 6861(the)s 7206(other)s -7754(\207le)s 8111(descriptor)s 480 3612(passed)m 1176(to)s gsave -1415 3666 translate +4774(in)s 9(v)k 4(ok)k 2(ed)k 5586(by)s +5877(the)s 6222(client;)s 6861(the)s 7206(other)s 7754(\207le)s +8111(descriptor)s 480 3947(passed)m 1161(to)s gsave +1384 4001 translate 0.6953 1.0000 scale -240 fnt31 -0 -52(cat)m -grestore -1775(will)s 2201(be)s 2483(one)s 2885(inherited)s -3792(by)s 4086(the)s 4434(client)s 5024(program)s 5894(from)s -6418(the)s 6766(caller)s 7355(or)s 7614(one)s 8016(opened)s -8766(by)s 480 3372(the)m 828(client)s 1418(program)s 2288(on)s -2585(behalf)s 3254(of)s 3525(the)s 3873(caller)s 13(.)k -480 2964(The)m 890(descriptor)s 1886(in)s 2110(the)s 2439(service)s -3152(program)s 4004(that)s 4403(should)s 5081(be)s 5344(connected)s -6353(must)s 6860(be)s 7123(speci\207ed)s 8012(as)s 240 fnt83 -8243 2966(fd)m 240 fnt82 8435 2964(,)m 8523(either)s 480 2724(as)m -728(a)s 891(decimal)s 1699(number)s 2487(or)s 2743(as)s -2990(one)s 3389(of)s 3657(the)s 4002(strings)s gsave -4688 2778 translate +240 fnt31 0 -52(cat)m + +grestore +1728(will)s 2139(be)s 2405(one)s 2791(inherited)s 3683(by)s +3961(the)s 4293(client)s 4868(program)s 5722(from)s 6230(the)s +6563(caller)s 7136(or)s 7379(one)s 7766(opened)s 8500(by)s +8778(the)s 480 3707(client)m 1063(program)s 1926(on)s 2215(behalf)s +2877(of)s 3140(the)s 3481(caller)s 13(.)k 4153(The)s +4574(descriptor)s 5581(in)s 5817(the)s 6157(service)s 6882(program)s +7744(that)s 8155(should)s 8844(be)s 480 3466(connected)m 1503(must)s +2023(be)s 2299(speci\207ed)s 3202(as)s 240 fnt83 3446 3468(fd)m +240 fnt82 3638 3466(,)m 3740(either)s 4338(as)s 4582(a)s +4743(decimal)s 5548(number)s 6334(or)s 6588(as)s 6832(one)s +7229(of)s 7494(the)s 7837(strings)s gsave +8519 3520 translate 0.6953 1.0000 scale -240 fnt31 -0 -52(stdin)m +240 fnt31 0 -52(stdin)m + grestore -5188(,)s gsave -5292 2778 translate +9019(,)s gsave +480 3280 translate 0.6953 1.0000 scale 240 fnt31 0 -52(stdout)m grestore -5949(or)s +1126 3226(or)m gsave +1370 3280 translate +0.6953 1.0000 scale +240 fnt31 +0 -52(stderr)m +grestore +1970(.)s 2059(The)s 2473(ne)s 3(xt)k +2927(ar)s 4(gument)k 3871(is)s 4067(a)s 4218(\207lename)s +5082(which)s 5709(will)s 6121(be)s 6388(opened)s 7123(by)s +7403(the)s 7736(client)s 8311(with)s 8778(the)s 480 2985(pri)m 6(vile)k 3(ges)k +1458(of)s 1722(the)s 2064(calling)s 2760(user)s 13(.)k +240 fnt83 3303 2987(modi\207er)m 2(s)k 240 fnt82 4240 2985(is)m +4444(used)s 4934(to)s 5166(specify)s 5904(whether)s 6727(the)s +7069(\207le)s 7423(or)s 7676(descriptor)s 8684(is)s 8887(to)s +480 2745(be)m 762(read)s 1230(from)s 1754(or)s 2012(written)s +2745(to.)s 3034(It)s 3239(consists)s 4046(of)s 4317(a)s +4482(series)s 5076(of)s 5346(w)s 2(ords)k 5980(separated)s +6939(by)s 7233(commas.)s 8133(A)s 8362(comma)s 480 2504(may)m +946(separate)s 1784(the)s 240 fnt83 2132 2506(modi\207er)m 2(s)k +240 fnt82 3076 2504(from)m 3600(the)s 240 fnt83 3948 2506(fd)m +240 fnt82 4200 2504(and)m 4604(is)s 4814(required)s 5668(if)s +240 fnt83 5885 2506(fd)m 240 fnt82 6137 2504(is)m 6347(not)s +6713(numeric.)s 7660(The)s 8088(modi\207er)s 480 2264(w)m 2(ords)k +1114(are:)s gsave +600 2078 translate +0.6953 1.0000 scale +240 fnt31 0 -52(read)m +grestore gsave -6205 2778 translate +960 1838 translate 0.6953 1.0000 scale -240 fnt31 0 -52(stderr)m +240 fnt31 0 -52(O_RDONLY)m + +grestore +1761 1784(:)m 1867(Allo)s 6(w)k 2513(reading)s 3283(and)s +3687(not)s 4053(writing.)s 4847(May)s 5340(not)s 5706(be)s +5988(used)s 6485(with)s gsave +6967 1838 translate +0.6953 1.0000 scale +240 fnt31 0 -52(write)m +grestore +7527(or)s +7786(things)s 8422(that)s 960 1544(imply)m 1572(it.)s gsave +600 1358 translate +0.6953 1.0000 scale +240 fnt31 +0 -52(write)m grestore -6805(.)s 6906(The)s 7331(ne)s 3(xt)k -7797(ar)s 4(gument)k 8753(is)s 8960(a)s 480 2484(\207lename)m -1359(which)s 2001(will)s 2427(be)s 2709(opened)s 3459(by)s -3753(the)s 4101(client)s 4691(with)s 5173(the)s 5521(pri)s 6(vile)k 3(ges)k -6505(of)s 6776(the)s 7124(calling)s 7827(user)s 13(.)k -240 fnt83 480 2078(modi\207er)m 2(s)k 240 fnt82 1424 2076(is)m -1634(used)s 2131(to)s 2370(specify)s 3114(whether)s 3944(the)s -4292(\207le)s 4653(or)s 4912(descriptor)s 5927(is)s 6137(to)s -6376(be)s 6658(read)s 7127(from)s 7651(or)s 7910(written)s -8643(to.)s 480 1835(It)m 682(consists)s 1487(of)s 1755(a)s -1918(series)s 2508(of)s 2776(w)s 2(ords)k 3407(separated)s -4364(by)s 4655(commas.)s 5552(A)s 5779(comma)s 6540(may)s -7003(separate)s 7838(the)s 240 fnt83 8182 1837(modi\207er)m 2(s)k -240 fnt82 480 1594(from)m 1004(the)s 240 fnt83 1352 1596(fd)m -240 fnt82 1604 1594(and)m 2008(is)s 2218(required)s 3072(if)s -240 fnt83 3289 1596(fd)m 240 fnt82 3541 1594(is)m 3751(not)s -4117(numeric.)s 1134 0 0 0 240 240 60 0 948 LoutGr2 +1134 0 0 0 240 240 60 0 947 LoutGr2 0 0 moveto xsize 0 lineto stroke grestore grestore -122 fnt82 0 753(1)m gsave -58 726 translate +122 fnt82 0 752(1)m gsave +58 725 translate 0.6953 1.0000 scale 192 fnt31 0 -42(userv)m grestore -192 fnt82 505 683(is)m 673(short)s 1103(for)s 1373(`user)s +192 fnt82 505 682(is)m 673(short)s 1103(for)s 1373(`user)s 1802(services',)s 2566(and)s 2890(is)s 3058(pronounced)s 4010(`you-serv)s 2(e'.)k -240 fnt82 0 52(0.61.4)m 4809(User)s 5320(service)s 6052(daemon)s +240 fnt82 0 52(1.0.1)m 4809(User)s 5320(service)s 6052(daemon)s 6867(and)s 7271(client)s 7861(speci\207cation)s grestore @@ -900,482 +935,412 @@ gsave gsave 1 LoutMargSet grestore -240 fnt84 8953 13844(5)m 240 fnt82 480 13254(The)m 908(modi\207er)s -1778(w)s 2(ords)k 2412(are:)s gsave -600 13068 translate -0.6953 1.0000 scale -240 fnt31 0 -52(read)m - -grestore -gsave -960 12828 translate -0.6953 1.0000 scale -240 fnt31 0 -52(O_RDONLY)m -grestore -1761 12774(:)m 1867(Allo)s 6(w)k -2513(reading)s 3283(and)s 3687(not)s 4053(writing.)s 4847(May)s -5340(not)s 5706(be)s 5988(used)s 6485(with)s gsave -6967 12828 translate -0.6953 1.0000 scale -240 fnt31 -0 -52(write)m -grestore -7527(or)s 7786(things)s 8422(that)s 960 12534(imply)m -1572(it.)s gsave -600 12348 translate -0.6953 1.0000 scale -240 fnt31 0 -52(write)m -grestore -gsave -960 12108 translate +240 fnt84 8953 13844(5)m gsave +960 13308 translate 0.6953 1.0000 scale -240 fnt31 0 -52(O_WRONLY)m - +240 fnt31 0 -52(O_WRONLY)m grestore -1761 12054(:)m 1867(Allo)s 6(w)k 2513(writing)s 3256(and)s -3660(not)s 4026(reading.)s 240 fnt83 4847 12056(Doesn')m 7(t)k +240 fnt82 +1761 13254(:)m 1867(Allo)s 6(w)k 2513(writing)s 3256(and)s +3660(not)s 4026(reading.)s 240 fnt83 4847 13256(Doesn')m 7(t)k 5661(truncate)s 6511(or)s 6789(cr)s 8(eate)k 240 fnt82 -7431 12054(without)m gsave -8222 12108 translate +7431 13254(without)m gsave +8222 13308 translate 0.6953 1.0000 scale 240 fnt31 0 -52(truncate)m grestore -960 11814(or)m gsave -1219 11868 translate +960 13014(or)m gsave +1219 13068 translate 0.6953 1.0000 scale 240 fnt31 0 -52(create)m grestore 1819(.)s gsave -1923 11868 translate +1923 13068 translate 0.6953 1.0000 scale 240 fnt31 0 -52(write)m grestore 2483(or)s 2742(things)s 3378(that)s 3796(imply)s 4408(it)s 4600(may)s 5066(not)s 5432(be)s 5714(used)s 6211(with)s gsave -6693 11868 translate +6693 13068 translate 0.6953 1.0000 scale 240 fnt31 0 -52(read)m grestore 7093(.)s gsave -600 11628 translate +600 12828 translate 0.6953 1.0000 scale 240 fnt31 0 -52(overwrite)m grestore -960 11334(Equi)m 6(v)k 6(alent)k +960 12534(Equi)m 6(v)k 6(alent)k 2044(to)s gsave -2283 11388 translate +2283 12588 translate 0.6953 1.0000 scale 240 fnt31 0 -52(write,create,truncate)m grestore 4385(.)s gsave -600 11148 translate +600 12348 translate 0.6953 1.0000 scale 240 fnt31 0 -52(create)m grestore gsave -600 10908 translate +600 12108 translate 0.6953 1.0000 scale 240 fnt31 0 -52(creat)m grestore gsave -960 10668 translate +960 11868 translate 0.6953 1.0000 scale 240 fnt31 0 -52(O_CREAT)m grestore -1660 10614(:)m 1766(Creates)s 2533(the)s 2881(\207le)s 3242(if)s +1660 11814(:)m 1766(Creates)s 2533(the)s 2881(\207le)s 3242(if)s 3459(necessary)s 15(.)k 4477(Implies)s gsave -5244 10668 translate +5244 11868 translate 0.6953 1.0000 scale 240 fnt31 0 -52(write)m grestore 5744(.)s gsave -600 10428 translate +600 11628 translate 0.6953 1.0000 scale 240 fnt31 0 -52(exclusive)m grestore gsave -600 10188 translate +600 11388 translate 0.6953 1.0000 scale 240 fnt31 0 -52(excl)m grestore gsave -960 9948 translate +960 11148 translate 0.6953 1.0000 scale 240 fnt31 0 -52(O_EXCL)m grestore -1560 9894(:)m 1666(F)s 3(ails)k +1560 11094(:)m 1666(F)s 3(ails)k 2178(if)s 2395(the)s 2743(\207le)s 3104(already)s 3861(e)s 3(xists.)k 4506(Implies)s gsave -5273 9948 translate +5273 11148 translate 0.6953 1.0000 scale 240 fnt31 0 -52(write)m grestore 5833(and)s gsave -6237 9948 translate +6237 11148 translate 0.6953 1.0000 scale 240 fnt31 0 -52(create)m grestore 6837(.)s 6941(May)s 7434(not)s 7800(be)s 8082(used)s 8579(with)s gsave -960 9708 translate +960 10908 translate 0.6953 1.0000 scale 240 fnt31 0 -52(truncate)m grestore -1761 9654(.)m +1761 10854(.)m gsave -600 9468 translate +600 10668 translate 0.6953 1.0000 scale 240 fnt31 0 -52(truncate)m grestore gsave -600 9228 translate +600 10428 translate 0.6953 1.0000 scale 240 fnt31 0 -52(trunc)m grestore gsave -960 8988 translate +960 10188 translate 0.6953 1.0000 scale 240 fnt31 0 -52(O_TRUNC)m grestore -1660 8934(:)m 1766(T)s 8(runcate)k 2663(an)s 3(y)k +1660 10134(:)m 1766(T)s 8(runcate)k 2663(an)s 3(y)k 3060(e)s 3(xisting)k 3867(\207le.)s 4276(Implies)s gsave -5043 8988 translate +5043 10188 translate 0.6953 1.0000 scale 240 fnt31 0 -52(write)m grestore 5543(.)s 5647(May)s 6140(not)s 6506(be)s 6788(used)s 7285(with)s gsave -7767 8988 translate +7767 10188 translate 0.6953 1.0000 scale 240 fnt31 0 -52(exclusive)m grestore 8668(.)s gsave -600 8748 translate +600 9948 translate 0.6953 1.0000 scale 240 fnt31 0 -52(append)m grestore gsave -960 8508 translate +960 9708 translate 0.6953 1.0000 scale 240 fnt31 0 -52(O_APPEND)m grestore -1761 8454(:)m +1761 9654(:)m 1867(All)s 2227(writes)s 2861(will)s 3287(append)s 4037(to)s 4276(the)s 4624(\207le.)s 5033(Implies)s gsave -5800 8508 translate +5800 9708 translate 0.6953 1.0000 scale 240 fnt31 0 -52(write)m grestore 6360(\(b)s 4(ut)k 6801(not)s gsave -7167 8508 translate +7167 9708 translate 0.6953 1.0000 scale 240 fnt31 0 -52(create)m grestore 7767(\).)s gsave -600 8268 translate +600 9468 translate 0.6953 1.0000 scale 240 fnt31 0 -52(sync)m grestore gsave -960 8028 translate +960 9228 translate 0.6953 1.0000 scale 240 fnt31 0 -52(O_SYNC)m grestore -1560 7974(:)m 1666(Do)s 2012(writes)s 2646(synchronously)s 15(.)k +1560 9174(:)m 1666(Do)s 2012(writes)s 2646(synchronously)s 15(.)k 4132(Implies)s gsave -4899 8028 translate +4899 9228 translate 0.6953 1.0000 scale 240 fnt31 0 -52(write)m grestore 5399(.)s gsave -600 7788 translate +600 8988 translate 0.6953 1.0000 scale 240 fnt31 0 -52(wait)m grestore gsave -600 7548 translate +600 8748 translate 0.6953 1.0000 scale 240 fnt31 0 -52(nowait)m grestore gsave -600 7308 translate +600 8508 translate 0.6953 1.0000 scale 240 fnt31 0 -52(close)m grestore -960 7014(These)m 1587(modi\207ers)s 2541(control)s 3273(the)s 3621(beha)s 4(viour)k +960 8214(These)m 1587(modi\207ers)s 2541(control)s 3273(the)s 3621(beha)s 4(viour)k 4634(of)s 4905(the)s 5253(client,)s 5890(with)s 6372(respect)s -7108(to)s 7347(the)s 7695(pipes)s 8251(carrying)s 960 6774(data)m +7108(to)s 7347(the)s 7695(pipes)s 8251(carrying)s 960 7974(data)m 1418(to)s 1657(and)s 2061(from)s 2585(the)s 2933(service,)s 3716(when)s 4292(the)s 4640(service)s 5372(terminates.)s 6470(See)s 6871(belo)s 6(w)k 15(.)k gsave -600 6588 translate +600 7788 translate 0.6953 1.0000 scale 240 fnt31 0 -52(fd)m grestore -960 6294(The)m 240 fnt83 1388 6296(\207lename)m 240 fnt82 2252 6294(is)m +960 7494(The)m 240 fnt83 1388 7496(\207lename)m 240 fnt82 2252 7494(is)m 2462(not)s 2828(a)s 2994(\207lename)s 3873(b)s 4(ut)k 4235(a)s 4401(numeric)s 5237(\207le)s 5598(descriptor)s 13(.)k 6644(One)s 7099(or)s 7358(both)s 7841(of)s gsave -8112 6348 translate +8112 7548 translate 0.6953 1.0000 scale 240 fnt31 0 -52(read)m grestore 8572(and)s gsave -960 6107 translate +960 7307 translate 0.6953 1.0000 scale 240 fnt31 0 -52(write)m grestore -1520 6053(must)m +1520 7253(must)m 2045(be)s 2327(speci\207ed,)s 3284(and)s 3688(no)s 3981(other)s 4532(w)s 2(ords)k 5166(are)s 5513(allo)s 6(wed.)k -6368(The)s 240 fnt83 6796 6055(\207lename)m 240 fnt82 7660 6053(may)m +6368(The)s 240 fnt83 6796 7255(\207lename)m 240 fnt82 7660 7253(may)m 8126(also)s 8564(be)s gsave -960 5867 translate +960 7067 translate 0.6953 1.0000 scale 240 fnt31 0 -52(stdin)m grestore -1460 5813(,)m +1460 7013(,)m gsave -1567 5867 translate +1567 7067 translate 0.6953 1.0000 scale 240 fnt31 0 -52(stdout)m grestore 2227(or)s gsave -2486 5867 translate +2486 7067 translate 0.6953 1.0000 scale 240 fnt31 0 -52(stderr)m grestore 3146(for)s 3484(\207le)s 3845(descriptor)s 4860(0,)s 5087(1)s 5242(or)s 5501(2)s 5675(respecti)s 6(v)k 3(ely)k 15(.)k -480 5251(If)m 701(no)s 240 fnt83 984 5253(modi\207er)m 2(s)k -240 fnt82 1918 5251(which)m 2550(imply)s gsave -3152 5305 translate +480 6748(If)m 701(no)s 240 fnt83 984 6750(modi\207er)m 2(s)k +240 fnt82 1918 6748(which)m 2550(imply)s gsave +3152 6802 translate 0.6953 1.0000 scale 240 fnt31 0 -52(read)m grestore 3602(or)s gsave -3851 5305 translate +3851 6802 translate 0.6953 1.0000 scale 240 fnt31 0 -52(write)m grestore 4401(are)s 4738(used)s 5226(it)s 5408(is)s 5608(as)s 5848(if)s gsave -6055 5305 translate +6055 6802 translate 0.6953 1.0000 scale 240 fnt31 0 -52(write)m grestore 6605(had)s 6999(been)s 7498(speci\207ed,)s 8445(e)s 3(xcept)k -480 5011(that)m 898(if)s 1115(the)s 1463(\207ledescriptor)s 2783(0)s +480 6508(that)m 898(if)s 1115(the)s 1463(\207ledescriptor)s 2783(0)s 2958(of)s 3229(the)s 3577(service)s 4309(is)s 4519(being)s 5104(opened)s 5854(\(either)s 6536(speci\207ed)s 7444(numerically)s 8639(or)s -480 4771(with)m gsave -962 4825 translate +480 6268(with)m gsave +962 6322 translate 0.6953 1.0000 scale 240 fnt31 0 -52(stdin)m grestore 1462(\))s 1590(it)s 1782(is)s 1992(as)s 2242(if)s gsave -2459 4825 translate +2459 6322 translate 0.6953 1.0000 scale 240 fnt31 0 -52(overwrite)m grestore 3420(had)s 3824(been)s 4333(speci\207ed)s 5241(\(or)s gsave -5579 4825 translate +5579 6322 translate 0.6953 1.0000 scale 240 fnt31 0 -52(write)m grestore 6139(if)s 6356(only)s gsave -6836 4825 translate +6836 6322 translate 0.6953 1.0000 scale 240 fnt31 0 -52(fd)m grestore -7096(w)s 2(as)k 7517(speci\207ed\).)s 480 4363(The)m 892(client)s -1465(will)s 1874(also)s 2296(use)s gsave -2654 4417 translate +7096(w)s 2(as)k 7517(speci\207ed\).)s 8610(The)s 480 6028(client)m +1064(will)s 1483(also)s 1915(use)s gsave +2283 6082 translate 0.6953 1.0000 scale 240 fnt31 0 -52(O_NOCTTY)m grestore -3498(when)s 4057(opening)s 4866(\207les)s 5298(speci\207ed)s 6189(by)s -6466(the)s 6798(caller)s 9(,)k 7408(to)s 7630(a)s 4(v)k 4(oid)k -8195(changing)s 480 4123(its)m 756(controlling)s 1858(terminal.)s 480 3715(By)m -810(de)s 1032(f)s 2(ault)k 1523(stdin,)s 2091(std)s -2368(out)s 2729(and)s 3129(stderr)s 3728(of)s 3995(the)s -4338(ser)s 4616(vice)s 5066(will)s 5488(be)s 5766(con)s -6109(nect)s 6507(ed)s 6786(to)s 7021(the)s 7365(cor)s -7670(re)s 7851(spond)s 8422(ing)s 8776(de)s 8998(-)s -480 3475(scrip)m 937(tors)s 1346(on)s 1643(the)s 1991(client.)s -2625(Di)s 2858(ag)s 3077(nos)s 3401(tics)s 3783(from)s -4307(the)s 4655(client)s 5245(and)s 5649(dae)s 5977(mon)s -6460(will)s 6886(also)s 7324(ap)s 7543(pear)s 8014(on)s -8311(stderr)s 13(.)k 480 3067(If)m gsave -710 3121 translate -0.6953 1.0000 scale -240 fnt31 0 -52(wait)m - -grestore -1170(is)s 1380(speci\207ed,)s 2337(the)s 2685(client)s 3275(will)s -3701(w)s 2(ait)k 4170(for)s 4508(the)s 4856(pipe)s -5324(to)s 5563(be)s 5845(closed,)s 6563(and)s 6967(only)s -7447(e)s 3(xit)k 7862(after)s 8358(this)s 480 2827(has)m -850(happened.)s 1872(This)s 2348(means)s 3010(that)s 3428(either)s -4031(the)s 4379(recei)s 6(ving)k 5315(end)s 5719(of)s -5990(the)s 6338(pipe)s 6806(connection)s 7913(w)s 2(as)k -8334(closed)s 480 2587(while)m 1067(data)s 1525(w)s 2(as)k -1946(still)s 2358(a)s 4(v)k 6(ailable)k 3266(at)s -3498(the)s 3846(sending)s 4644(end,)s 5097(or)s 5356(that)s -5774(the)s 6122(end)s 6526(of)s 6797(\207le)s 7158(w)s 2(as)k -7579(reached)s 8380(on)s 8677(the)s 480 2347(reading)m 1250(\207le)s -1611(descriptor)s 13(.)k 2657(Errors)s 3304(encountered)s 4531(reading)s -5301(or)s 5560(writing)s 6303(in)s 6546(the)s 6894(client)s -7484(at)s 7716(this)s 8112(stage)s 8659(will)s 480 2106(be)m -762(considered)s 1855(a)s 2021(system)s 2744(error)s 3266(and)s -3670(cause)s 4256(the)s 4603(client)s 5193(to)s 5431(e)s 3(xit)k -5845(with)s 6327(status)s 6921(255,)s 7387(b)s 4(ut)k -7749(will)s 8174(not)s 8539(cause)s 480 1866(disconnection)m 1866(at)s -2098(the)s 2446(service)s 3178(side)s 3619(since)s 4166(the)s -4514(service)s 5246(has)s 5616(already)s 6373(e)s 3(xited.)k -480 1458(If)m gsave -710 1512 translate +3137(when)s 3707(opening)s 4525(\207les)s 4968(speci\207ed)s 5869(by)s +6156(the)s 6498(caller)s 9(,)k 7118(to)s 7351(a)s 4(v)k 4(oid)k +7926(changing)s 8850(its)s 480 5788(controlling)m 1581(terminal.)s 2539(By)s +2871(def)s 2(ault)k 3591(stdin,)s 4161(stdout)s 4805(and)s +5207(stderr)s 5809(of)s 6079(the)s 6425(service)s 7156(will)s +7580(be)s 7861(connected)s 8887(to)s 480 5548(the)m 811(corresponding)s +2216(descriptors)s 3297(on)s 3577(the)s 3907(client.)s 4524(Diagnostics)s +5686(from)s 6193(the)s 6523(client)s 7096(and)s 7482(daemon)s +8280(will)s 8688(also)s 480 5308(appear)m 1177(on)s 1473(stderr)s 13(.)k +2167(If)s gsave +2396 5362 translate 0.6953 1.0000 scale -240 fnt31 0 -52(close)m -grestore -1270(is)s 1480(speci\207ed)s -2388(the)s 2736(client)s 3326(will)s 3752(immediately)s 5000(close)s -5547(the)s 5895(pipe)s 6363(connection)s 7470(by)s 7764(killing)s -8441(the)s 480 1218(rele)m 6(v)k 6(ant)k 1297(cop)s 2(y)k -1815(of)s gsave -2086 1272 translate -0.6953 1.0000 scale -240 fnt31 0 -52(cat)m +240 fnt31 0 -52(wait)m grestore -2386(.)s 2490(If)s -2720(the)s 3068(service)s 3800(uses)s 4263(the)s 4611(descriptor)s -5626(it)s 5818(will)s 6244(get)s gsave -6596 1272 translate +2856(is)s 3065(speci\207ed,)s +4022(the)s 4369(client)s 4959(will)s 5384(w)s 2(ait)k +5853(for)s 6190(the)s 6538(pipe)s 7005(to)s 7244(be)s +7525(closed,)s 8243(and)s 8646(only)s 480 5068(e)m 3(xit)k +889(after)s 1379(this)s 1769(has)s 2132(happened.)s 3148(This)s +3618(means)s 4274(that)s 4685(either)s 5282(the)s 5624(recei)s 6(ving)k +6554(end)s 6951(of)s 7216(the)s 7558(pipe)s 8019(connection)s +480 4828(w)m 2(as)k 901(closed)s 1570(while)s 2157(data)s +2615(w)s 2(as)k 3036(still)s 3448(a)s 4(v)k 6(ailable)k +4356(at)s 4588(the)s 4936(sending)s 5734(end,)s 6187(or)s +6446(that)s 6864(the)s 7212(end)s 7616(of)s 7887(\207le)s +8248(w)s 2(as)k 480 4588(reached)m 1279(on)s 1573(the)s +1919(reading)s 2686(\207le)s 3045(descriptor)s 13(.)k 4088(Errors)s +4732(encountered)s 5957(reading)s 6724(or)s 6981(writing)s 7721(in)s +7962(the)s 8307(client)s 8894(at)s 480 4347(this)m 876(stage)s +1423(will)s 1849(be)s 2131(considered)s 3225(a)s 3391(system)s +4115(error)s 4638(and)s 5042(cause)s 5629(the)s 5977(client)s +6567(to)s 6806(e)s 3(xit)k 7221(with)s 7703(status)s +8298(255,)s 8764(b)s 4(ut)k 480 4107(will)m 896(not)s +1251(cause)s 1827(disconnection)s 3203(at)s 3424(the)s 3761(service)s +4482(side)s 4913(since)s 5449(the)s 5786(service)s 6507(has)s +6867(already)s 7613(e)s 3(xited.)k 8347(If)s gsave +8566 4161 translate 0.6953 1.0000 scale -240 fnt31 0 -52(SIGPIPE)m - +240 fnt31 +0 -52(close)m grestore -7356(\(or)s gsave -7694 1272 translate +480 3867(is)m 676(speci\207ed)s 1569(the)s 1902(client)s +2477(will)s 2888(immediately)s 4121(close)s 4653(the)s 4987(pipe)s +5440(connection)s 6532(by)s 6811(killing)s 7473(the)s 7806(rele)s 6(v)k 6(ant)k +8608(cop)s 2(y)k 480 3627(of)m gsave +744 3681 translate 0.6953 1.0000 scale -240 fnt31 0 -52(EPIPE)m -grestore -8194(\))s 8322(for)s -8660(a)s 480 978(writing)m 1218(descriptor)s 2228(or)s 2482(end)s -2881(of)s 3147(\207le)s 3502(for)s 3835(a)s 3996(reading)s -4761(one;)s 5214(the)s 5557(descriptor)s 6566(opened)s 7311(by)s -7600(or)s 7854(passed)s 8545(to)s 8778(the)s 480 738(client)m -1070(will)s 1496(also)s 1934(be)s 2216(closed.)s 0 52(User)m -511(service)s 1243(daemon)s 2058(and)s 2462(client)s 3052(speci\207cation)s -8472(0.61.4)s -grestore - -grestore - -pgsave restore -showpage +240 fnt31 0 -52(cat)m -%%Page: 6 6 -%%BeginPageSetup -%%PageResources: font Times-Roman -%%+ font Times-Bold -%%+ font Courier-Bold -%%+ font Times-Italic -/pgsave save def -0.0500 dup scale 10 setlinewidth -%%EndPageSetup -gsave -0 0 translate -240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic -gsave -LoutPageSet grestore +1044(.)s 1141(If)s 1364(the)s 1705(service)s 2429(uses)s +2885(the)s 3226(descriptor)s 4234(it)s 4418(will)s 4837(get)s gsave -0 16840 translate -0.0000 rotate - +5182 3681 translate +0.6953 1.0000 scale +240 fnt31 0 -52(SIGPIPE)m grestore +5935(\(or)s gsave +6265 3681 translate +0.6953 1.0000 scale +240 fnt31 0 -52(EPIPE)m grestore -gsave -0 16840 translate -0.0000 rotate -gsave -1417 -15423 translate -240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic -gsave -0 LoutMargSet -grestore -240 fnt84 0 13842(6)m 240 fnt82 480 13251(If)m gsave -707 13305 translate +6765(\))s 6886(for)s 7217(a)s 7376(writing)s 8111(descriptor)s +480 3387(or)m 736(end)s 1137(of)s 1404(\207le)s 1762(for)s +2096(a)s 2259(reading)s 3025(one;)s 3480(the)s 3824(descriptor)s +4836(opened)s 5582(by)s 5873(or)s 6128(passed)s 6821(to)s +7056(the)s 7401(client)s 7987(will)s 8410(also)s 8844(be)s +480 3147(closed.)m 1255(If)s gsave +1485 3201 translate 0.6953 1.0000 scale -240 fnt31 -0 -52(nowait)m -grestore -1364(is)s 1570(speci\207ed)s 2475(then)s 2941(the)s -3285(client)s 3872(will)s 4294(not)s 4657(w)s 2(ait)k -5123(and)s 5523(the)s 5868(connection)s 6972(will)s 7394(remain)s -8111(open)s 8630(after)s 480 13011(the)m 824(client)s 1409(terminates.)s -2502(Data)s 3008(may)s 3469(continue)s 4344(to)s 4578(be)s -4856(passed)s 5547(between)s 6396(the)s 6739(inheritors)s 7700(of)s -7966(the)s 8309(rele)s 6(v)k 6(ant)k 480 12771(descriptor)m -1484(on)s 1770(the)s 2107(service)s 2828(side)s 3258(and)s -3651(the)s 3988(corresponding)s 5399(\207le)s 5749(or)s 5997(descriptor)s -7001(on)s 7287(the)s 7624(client)s 8203(side)s 8633(until)s -480 12531(either)m 1071(side)s 1499(closes)s 2121(their)s 2606(descriptor)s 13(.)k -3639(This)s 4102(should)s 4786(not)s 5140(usually)s 5872(be)s -6141(speci\207ed)s 7036(for)s 7362(stderr)s 7952(\(or)s 8277(stdout)s -8909(if)s gsave -480 12345 translate -0.6953 1.0000 scale -240 fnt31 0 -52(\211\211signals)m 1440(stdout)s -grestore -2141 12291(is)m -2350(used\))s 2916(since)s 3462(diagnostics)s 4588(from)s 5111(the)s -5457(service)s 6188(side)s 6628(may)s 7093(arri)s 6(v)k 3(e)k -7695(after)s 8190(the)s 8536(client)s 480 12051(has)m 850(e)s 3(xited)k -1489(and)s 1893(be)s 2175(confused)s 3097(with)s 3579(e)s 3(xpected)k -4484(output.)s 480 11643(The)m 908(def)s 2(ault)k 1629(is)s -gsave -1839 11697 translate +240 fnt31 0 -52(nowait)m +grestore +2145(is)s +2355(speci\207ed)s 3263(then)s 3732(the)s 4080(client)s 4670(will)s +5096(not)s 5462(w)s 2(ait)k 5931(and)s 6335(the)s +6683(connection)s 7790(will)s 8216(remain)s 480 2907(open)m 1003(after)s +1499(the)s 1847(client)s 2437(terminates.)s 3535(Data)s 4046(may)s +4512(continue)s 5392(to)s 5631(be)s 5913(passed)s 6609(between)s +7463(the)s 7811(inheritors)s 8777(of)s 480 2667(the)m 828(rele)s 6(v)k 6(ant)k +1645(descriptor)s 2660(on)s 2957(the)s 3305(service)s 4037(side)s +4478(and)s 4882(the)s 5230(corresponding)s 6652(\207le)s 7013(or)s +7272(descriptor)s 8287(on)s 8584(the)s 480 2427(client)m 1070(side)s +1511(until)s 2004(either)s 2607(side)s 3048(closes)s 3683(their)s +4180(descriptor)s 13(.)k 5226(This)s 5702(should)s 6399(not)s +6765(usually)s 7510(be)s 7792(speci\207ed)s 8700(for)s 480 2187(stderr)m +1083(\(or)s 1421(stdout)s 2066(if)s gsave +2283 2241 translate +0.6953 1.0000 scale +240 fnt31 0 -52(\211\211signals)m +1440(stdout)s +grestore +3945(is)s 4155(used\))s 4722(since)s 5269(diagnostics)s +6396(from)s 6920(the)s 7268(service)s 8000(side)s 8441(may)s +480 1947(arri)m 6(v)k 3(e)k 1083(after)s 1579(the)s +1927(client)s 2517(has)s 2887(e)s 3(xited)k 3526(and)s +3930(be)s 4212(confused)s 5134(with)s 5616(e)s 3(xpected)k +6521(output.)s 7297(The)s 7725(def)s 2(ault)k 8446(is)s +gsave +8656 2001 translate 0.6953 1.0000 scale 240 fnt31 0 -52(wait)m grestore -2299(for)s 2637(writing)s 3380(\207le)s -3741(descriptors)s 4840(and)s gsave -5244 11697 translate +480 1707(for)m 818(writing)s 1561(\207le)s +1922(descriptors)s 3021(and)s gsave +3425 1761 translate 0.6953 1.0000 scale 240 fnt31 0 -52(close)m grestore -5804(for)s -6142(reading)s 6912(ones.)s gsave -120 11303 translate +3985(for)s +4323(reading)s 5093(ones.)s gsave +120 1367 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211w)m gsave 288 0 translate @@ -1391,7 +1356,7 @@ grestore grestore gsave -120 11063 translate +120 1127 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211\211fdwait)m gsave @@ -1407,55 +1372,96 @@ grestore grestore grestore -480 10769(Sets)m 924(the)s 1267(action)s 1903(on)s +480 833(Sets)m 924(the)s 1267(action)s 1903(on)s 2194(termination)s 3347(of)s 3613(the)s 3956(service)s 4682(for)s 5015(the)s 5358(speci\207ed)s 6261(\207le)s 6616(descriptor;)s 240 fnt83 -7678 10771(action)m 240 fnt82 8325 10769(must)m 8844(be)s gsave -480 10583 translate +7678 835(action)m 240 fnt82 8325 833(must)m 8844(be)s 0 52(User)m +511(service)s 1243(daemon)s 2058(and)s 2462(client)s 3052(speci\207cation)s +8611(1.0.1)s +grestore + +grestore + +pgsave restore +showpage + +%%Page: 6 6 +%%BeginPageSetup +%%PageResources: font Times-Roman +%%+ font Times-Bold +%%+ font Courier-Bold +%%+ font Times-Italic +/pgsave save def +0.0500 dup scale 10 setlinewidth +%%EndPageSetup +gsave +0 0 translate +240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic +gsave +LoutPageSet +grestore +gsave +0 16840 translate +0.0000 rotate + +grestore + +grestore +gsave +0 16840 translate +0.0000 rotate +gsave +1417 -15423 translate +240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic +gsave +0 LoutMargSet +grestore +240 fnt84 0 13842(6)m gsave +480 13305 translate 0.6953 1.0000 scale -240 fnt31 -0 -52(wait)m +240 fnt31 0 -52(wait)m grestore -880 10529(,)m gsave -981 10583 translate +240 fnt82 +880 13251(,)m gsave +981 13305 translate 0.6953 1.0000 scale 240 fnt31 0 -52(nowait)m grestore -1634(or)s -gsave -1886 10583 translate +1634(or)s gsave +1886 13305 translate 0.6953 1.0000 scale -240 fnt31 0 -52(close)m +240 fnt31 +0 -52(close)m grestore 2439(as)s 2682(described)s 3650(abo)s 3(v)k 3(e.)k 4313(The)s 4734(\207le)s 5088(descriptor)s 6096(must)s 6615(be)s -6890(speci\207ed)s 7791(as)s 8034(open)s 8550(when)s 480 10289(this)m +6890(speci\207ed)s 7791(as)s 8034(open)s 8550(when)s 480 13011(this)m 876(option)s 1545(is)s 1755(encountered;)s 3036(this)s 3432(option)s 4101(is)s 4311(o)s 3(v)k 3(erridden)k 5398(by)s 5692(an)s 3(y)k 6089(later)s gsave -6572 10343 translate +6572 13065 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211\211file)m grestore 7232(or)s gsave -7491 10343 translate +7491 13065 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211\211fdwait)m grestore -8352(option)s 480 10049(-)m +8352(option)s 480 12771(-)m 608(e)s 6(v)k 3(en)k 1108(by)s 1402(a)s gsave -1568 10103 translate +1568 12825 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211\211file)m grestore 2228(which)s 2870(does)s 3360(not)s 3726(specify)s 4470(an)s 4753(action)s 5394(on)s 5691(termination)s 6849(\(in)s 7171(this)s 7567(case)s 8034(the)s 8382(def)s 2(ault)k -480 9809(will)m 906(be)s 1188(used,)s 1734(as)s 1984(described)s +480 12531(will)m 906(be)s 1188(used,)s 1734(as)s 1984(described)s 2958(abo)s 3(v)k 3(e\).)k gsave -120 9479 translate +120 12201 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211D)m gsave @@ -1472,7 +1478,7 @@ grestore grestore gsave -120 9239 translate +120 11961 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211\211defvar)m gsave 1296 0 translate @@ -1487,17 +1493,17 @@ gsave grestore grestore -480 8945(Set)m 845(a)s 1011(user)s 4(-)k +480 11667(Set)m 845(a)s 1011(user)s 4(-)k 1473(de\207ned)s 2236(v)s 6(ari)k 2595(able)s 240 fnt83 -3049 8947(name)m 240 fnt82 3621 8945(to)m 240 fnt83 3860 8947(val)m -4152(ue)s 240 fnt82 4371 8945(.)m 4475(These)s 5102(user)s 4(-)k +3049 11669(name)m 240 fnt82 3621 11667(to)m 240 fnt83 3860 11669(val)m +4152(ue)s 240 fnt82 4371 11667(.)m 4475(These)s 5102(user)s 4(-)k 5564(de\207ned)s 6327(v)s 6(ari)k 6686(ables)s 7228(are)s 7575(made)s 8149(a)s 4(v)k 6(ail)k 8598(able)s -480 8705(in)m 723(the)s 1071(con)s 1414(\207g)s 1660(u)s +480 11427(in)m 723(the)s 1071(con)s 1414(\207g)s 1660(u)s 1775(ra)s 1960(tion)s 2389(lan)s 2678(guage)s 3306(as)s 3556(the)s 3904(pa)s 4130(ram)s 4501(e)s 4603(ters)s gsave -4998 8759 translate +4998 11481 translate 0.6953 1.0000 scale 240 fnt31 0 -52(u\211)m gsave 288 0 translate @@ -1508,10 +1514,10 @@ grestore grestore 5764(and)s 6168(are)s 6515(passed)s 7211(to)s 7450(the)s 7798(ser)s -8076(vice)s 8530(in)s 8773(en)s 8996(-)s 480 8465(vi)m +8076(vice)s 8530(in)s 8773(en)s 8996(-)s 480 11187(vi)m 660(ron)s 976(ment)s 1508(v)s 6(ari)k 1867(ables)s gsave -2402 8519 translate +2402 11241 translate 0.6953 1.0000 scale 240 fnt31 0 -52(USERV_U_)m gsave 1152 0 translate @@ -1521,18 +1527,18 @@ grestore grestore 3709(.)s -240 fnt83 3806 8467(name)m 240 fnt82 4371 8465(may)m 4831(con)s +240 fnt83 3806 11189(name)m 240 fnt82 4371 11187(may)m 4831(con)s 5174(tain)s 5582(only)s 6055(al)s 6222(phanu)s 6803(mer)s 7174(ics)s 7483(and)s 7880(un)s 8117(der)s 8422(scores,)s -480 8225(and)m 884(must)s 1409(start)s 1879(with)s 2360(a)s +480 10947(and)m 884(must)s 1409(start)s 1879(with)s 2360(a)s 2526(let)s 2764(ter)s 13(.)k 3106(If)s 3335(se)s 6(v)k 3643(er)s 3828(al)s 4055(de\207)s 4406(ni)s 4586(tions)s 5102(are)s 5449(gi)s 6(v)k 5744(en)s 6026(for)s -6364(the)s 6712(same)s 240 fnt83 7258 8227(name)m 240 fnt82 -7830 8225(then)m 8299(only)s 8778(the)s 480 7985(last)m 871(is)s +6364(the)s 6712(same)s 240 fnt83 7258 10949(name)m 240 fnt82 +7830 10947(then)m 8299(only)s 8778(the)s 480 10707(last)m 871(is)s 1081(ef)s 1278(fec)s 1562(ti)s 6(v)k 3(e.)k gsave -120 7694 translate +120 10416 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211t)m gsave 432 0 translate @@ -1542,7 +1548,7 @@ grestore grestore gsave -120 7454 translate +120 10176 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211\211timeout)m gsave @@ -1552,130 +1558,170 @@ gsave grestore grestore -480 7160(T)m 8(ime)k +480 9882(T)m 8(ime)k 1029(out)s 1392(the)s 1736(service)s 2465(if)s 2678(it)s 2867(tak)s 2(es)k 3403(longer)s 4071(than)s 240 fnt83 -4536 7162(seconds)m 240 fnt82 5346 7160(seconds)m 6151(\(a)s 6393(positi)s 6(v)k 3(e)k +4536 9884(seconds)m 240 fnt82 5346 9882(seconds)m 6151(\(a)s 6393(positi)s 6(v)k 3(e)k 7193(inte)s 3(ger)k 9(,)k 7948(in)s 8187(decimal\).)s -480 6919(T)m 8(imeout)k 1331(will)s 1746(produce)s 2562(a)s +480 9641(T)m 8(imeout)k 1331(will)s 1746(produce)s 2562(a)s 2717(diagnostic)s 3742(on)s 4028(stderr)s 4620(and)s 5013(an)s 5284(e)s 3(xit)k 5688(status)s 6272(of)s 6532(255.)s -6985(If)s 240 fnt83 7204 6921(seconds)m 240 fnt82 8006 6919(is)m -8205(zero)s 8657(then)s 480 6679(no)m 773(timeout)s 1563(will)s +6985(If)s 240 fnt83 7204 9643(seconds)m 240 fnt82 8006 9641(is)m +8205(zero)s 8657(then)s 480 9401(no)m 773(timeout)s 1563(will)s 1989(be)s 2271(implemented)s 3577(\(this)s 4052(is)s 4262(the)s 4610(def)s 2(ault\).)k gsave -120 6339 translate +120 9061 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211S)m grestore 240 fnt83 -380 6287(method)m gsave -120 6099 translate +380 9009(method)m gsave +120 8821 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211\211signals)m grestore -1081 6047(method)m 240 fnt82 -480 5805(Af)m 6(fects)k 1212(the)s 1544(handling)s 2420(of)s +1081 8769(method)m 240 fnt82 +480 8527(Af)m 6(fects)k 1212(the)s 1544(handling)s 2420(of)s 2675(the)s 3008(e)s 3(xit)k 3407(status)s 3987(when)s 4547(the)s 4879(service)s 5596(terminates)s 6625(due)s 7012(to)s -7235(a)s 7386(signal.)s 8045(\(The)s 8536(client)s 480 5564(will)m +7235(a)s 7386(signal.)s 8045(\(The)s 8536(client)s 480 8286(will)m 906(al)s 2(w)k 2(ays)k 1617(\207nish)s 2206(by)s 2500(calling)s gsave -3203 5618 translate +3203 8340 translate 0.6953 1.0000 scale 240 fnt31 0 -52(_exit)m grestore 3703(,)s 3810(so)s 4076(that)s 4494(only)s 4974(numbers)s 5849(from)s 6373(0)s 6548(to)s 6787(255)s 7193(can)s 7582(be)s 7864(returned)s -8718(and)s 480 5324(not)m 830(the)s 1162(full)s 1532(range)s +8718(and)s 480 8046(not)m 830(the)s 1162(full)s 1532(range)s 2102(of)s 2357(numbers)s 3216(and)s 3603(signal)s 4213(indications)s 5297(which)s 5922(can)s 6295(be)s 6561(returned)s 7398(by)s 7676(the)s gsave -8008 5378 translate +8008 8100 translate 0.6953 1.0000 scale 240 fnt31 0 -52(wait)m grestore 8451(f)s 2(amily)k -480 5084(of)m 751(system)s 1475(calls.\))s 480 4676(The)m 240 fnt83 -908 4678(method)m 240 fnt82 1679 4676(may)m 2145(be)s 2427(one)s -2829(of)s 3100(the)s 3448(follo)s 6(wing:)k 240 fnt83 -600 4438(status)m 240 fnt82 960 4196(The)m 1386(client')s 13(s)k +480 7805(of)m 751(system)s 1475(calls.\))s 2160(The)s 240 fnt83 +2588 7807(method)m 240 fnt82 3359 7805(may)m 3825(be)s 4107(one)s +4509(of)s 4780(the)s 5128(follo)s 6(wing:)k 240 fnt83 +600 7567(status)m 240 fnt82 960 7325(The)m 1386(client')s 13(s)k 2123(e)s 3(xit)k 2536(status)s 3128(will)s 3552(be)s -240 fnt83 3831 4198(status)m 240 fnt82 4384 4196(.)m 4486(This)s +240 fnt83 3831 7327(status)m 240 fnt82 4384 7325(.)m 4486(This)s 4959(will)s 5383(not)s 5746(be)s 6026(distinguishable)s 7527(from)s -8049(the)s 8394(service)s 960 3955(really)m 1557(ha)s 4(ving)k +8049(the)s 8394(service)s 960 7084(really)m 1557(ha)s 4(ving)k 2258(e)s 3(xited)k 2897(with)s 3379(code)s 240 fnt83 -3887 3957(status)m 240 fnt82 4440 3955(.)m 4544(This)s 5020(method)s +3887 7086(status)m 240 fnt82 4440 7084(.)m 4544(This)s 5020(method)s 5796(is)s 6006(the)s 6354(def)s 2(ault,)k 7122(with)s -7604(a)s 240 fnt83 7770 3957(status)m 240 fnt82 8383 3955(of)m +7604(a)s 240 fnt83 7770 7086(status)m 240 fnt82 8383 7084(of)m 8654(254.)s gsave -600 3769 translate +600 6898 translate 0.6953 1.0000 scale 240 fnt31 0 -52(number)m grestore gsave -600 3529 translate +600 6658 translate 0.6953 1.0000 scale 240 fnt31 0 -52(number\211nocore)m grestore -960 3235(The)m 1388(client')s 13(s)k 2128(e)s 3(xit)k +960 6364(The)m 1388(client')s 13(s)k 2128(e)s 3(xit)k 2543(status)s 3138(will)s 3564(be)s 3846(the)s 4194(number)s 4985(of)s 5256(the)s 5604(signal)s 6230(which)s 6872(caused)s -7581(the)s 7929(termination)s 960 2995(of)m 1231(the)s 1579(service.)s +7581(the)s 7929(termination)s 960 6124(of)m 1231(the)s 1579(service.)s 2359(If)s gsave -2589 3049 translate +2589 6178 translate 0.6953 1.0000 scale 240 fnt31 0 -52(number)m grestore 3249(is)s 3459(used)s 3956(rather)s 4572(than)s gsave -5041 3049 translate +5041 6178 translate 0.6953 1.0000 scale 240 fnt31 0 -52(number\211nocore)m grestore 6402(then)s -6871(128)s 7278(will)s 7704(be)s 7986(added)s 960 2755(if)m +6871(128)s 7278(will)s 7704(be)s 7986(added)s 960 5884(if)m 1177(the)s 1525(service)s 2257(dumped)s 3087(core.)s gsave -3602 2809 translate +3602 5938 translate 0.6953 1.0000 scale 240 fnt31 0 -52(number)m grestore 4262(is)s 4472(v)s 3(ery)k 4948(lik)s 2(e)k 5360(the)s 5708(e)s 3(xit)k 6123(code)s 6631(mangling)s -7588(done)s 8110(by)s 8404(the)s 960 2515(Bourne)m 1721(shell.)s +7588(done)s 8110(by)s 8404(the)s 960 5644(Bourne)m 1721(shell.)s gsave -600 2329 translate +600 5458 translate 0.6953 1.0000 scale 240 fnt31 0 -52(highbit)m grestore -960 2035(The)m 1388(client')s 13(s)k +960 5164(The)m 1388(client')s 13(s)k 2128(e)s 3(xit)k 2543(status)s 3138(will)s 3564(be)s 3846(the)s 4194(number)s 4985(of)s 5256(the)s 5604(signal)s 6230(with)s 6712(128)s 7119(added.)s 7795(If)s 8025(the)s -8373(service)s 960 1795(e)m 3(xits)k 1459(normally)s 2376(with)s +8373(service)s 960 4924(e)m 3(xits)k 1459(normally)s 2376(with)s 2858(an)s 3141(e)s 3(xit)k 3556(code)s 4064(of)s 4335(greater)s 5057(than)s 5526(127)s 5934(then)s 6403(127)s 6811(will)s 7237(be)s 7519(returned.)s gsave -600 1609 translate +600 4738 translate 0.6953 1.0000 scale 240 fnt31 0 -52(stdout)m grestore -960 1315(The)m 1375(service')s 13(s)k 2247(numeric)s 3069(w)s 2(ait)k +960 4444(The)m 1375(service')s 13(s)k 2247(numeric)s 3069(w)s 2(ait)k 3524(status)s 4105(as)s 4341(tw)s 2(o)k 4737(decimal)s 5534(numbers)s 6395(\(high)s 6943(byte)s 7397(\207rst\))s 7882(and)s -8272(a)s 8424(te)s 3(xtual)k 960 1075(description)m 2079(of)s +8272(a)s 8424(te)s 3(xtual)k 960 4204(description)m 2079(of)s 2350(its)s 2626(meaning)s 3503(will)s 3929(be)s 4211(printed)s 4946(to)s 5185(the)s 5533(client')s 13(s)k 6273(standard)s -7141(output.)s 7857(It)s 8062(will)s 8488(be)s 960 835(preceded)m +7141(output.)s 7857(It)s 8062(will)s 8488(be)s 960 3964(preceded)m 1865(by)s 2142(a)s 2292(ne)s 6(wline)k 3082(and)s 3470(follo)s 6(wed)k 4355(by)s 4633(an)s 4899(e)s 3(xtra)k 5417(ne)s 6(wline,)k 6258(and)s 6646(the)s 6977(numbers)s -7836(are)s 8166(separated)s 0 52(0.61.4)m 4809(User)s 5320(service)s -6052(daemon)s 6867(and)s 7271(client)s 7861(speci\207cation)s +7836(are)s 8166(separated)s 960 3724(from)m 1484(each)s 1979(other)s +2530(and)s 2934(from)s 3458(the)s 3806(te)s 3(xtual)k +4508(description)s 5627(by)s 5921(single)s 6548(spaces.)s 7276(The)s +7704(e)s 3(xit)k 8119(status)s 8714(of)s 960 3484(the)m +1308(client)s 1898(will)s 2324(be)s 2606(zero,)s 3124(unless)s +3773(a)s 3939(system)s 4663(error)s 5186(occurs)s 5861(in)s +6104(which)s 6746(case)s 7213(no)s 7506(e)s 3(xit)k +7921(status)s 8516(and)s 960 3244(description)m 2079(will)s 2505(be)s +2787(printed)s 3522(to)s 3761(stdout,)s 4453(and)s 4857(an)s +5140(error)s 5663(message)s 6529(will)s 6955(be)s 7237(printed)s +7972(to)s 8211(stderr)s 960 3004(as)m 1210(usual.)s 480 2791(Problems)m +1420(such)s 1902(as)s 2137(client)s 2713(usage)s 3299(errors,)s +3948(the)s 4281(service)s 4999(not)s 5351(being)s 5921(found)s +6524(or)s 6768(permission)s 7860(being)s 8430(denied)s 480 2551(or)m +739(f)s 2(ailure)k 1415(of)s 1686(a)s 1852(system)s +2576(call)s 2975(are)s 3322(system)s 4046(errors.)s 4706(An)s +5056(error)s 5579(message)s 6445(describing)s 7494(the)s 7842(problem)s +8699(will)s 480 2310(be)m 758(printed)s 1489(on)s 1782(the)s +2125(client')s 13(s)k 2861(stderr)s 9(,)k 3498(and)s +3898(the)s 4241(client')s 13(s)k 4977(e)s 3(xit)k +5388(status)s 5978(will)s 6400(be)s 6678(255.)s 7138(If)s +7363(the)s 7707(client)s 8293(dies)s 8724(due)s 480 2070(to)m +719(a)s 885(signal)s 1511(this)s 1907(should)s 2604(be)s +2886(treated)s 3593(as)s 3843(a)s 4009(serious)s 4737(system)s +5461(error)s 13(.)k gsave +120 1730 translate +0.6953 1.0000 scale +240 fnt31 0 -52(\211H)m +grestore +gsave +120 1490 translate +0.6953 1.0000 scale +240 fnt31 +0 -52(\211\211hidecwd)m +grestore +480 1196(Pre)m 6(v)k 3(ents)k 1345(the)s +1693(calling)s 2396(process')s 13(s)k 3323(current)s 4059(directory)s +4975(name)s 5549(from)s 6073(being)s 6658(passed)s 7354(to)s +7593(the)s 7941(service;)s 8729(the)s 480 956(null)m 907(string)s +1504(will)s 1930(be)s 2212(passed)s 2908(instead.)s 0 52(1.0.1)m +4809(User)s 5320(service)s 6052(daemon)s 6867(and)s 7271(client)s +7861(speci\207cation)s grestore grestore @@ -1714,115 +1760,76 @@ gsave gsave 1 LoutMargSet grestore -240 fnt84 8951 13844(7)m 240 fnt82 960 13256(from)m 1484(each)s -1979(other)s 2530(and)s 2934(from)s 3458(the)s 3806(te)s 3(xtual)k -4508(description)s 5627(by)s 5921(single)s 6548(spaces.)s 7276(The)s -7704(e)s 3(xit)k 8119(status)s 8714(of)s 960 13016(the)m -1308(client)s 1898(will)s 2324(be)s 2606(zero,)s 3124(unless)s -3773(a)s 3939(system)s 4663(error)s 5186(occurs)s 5861(in)s -6104(which)s 6746(case)s 7213(no)s 7506(e)s 3(xit)k -7921(status)s 8516(and)s 960 12776(description)m 2079(will)s 2505(be)s -2787(printed)s 3522(to)s 3761(stdout,)s 4453(and)s 4857(an)s -5140(error)s 5663(message)s 6529(will)s 6955(be)s 7237(printed)s -7972(to)s 8211(stderr)s 960 12536(as)m 1210(usual.)s 480 12024(Problems)m -1420(such)s 1902(as)s 2137(client)s 2713(usage)s 3299(errors,)s -3948(the)s 4281(service)s 4999(not)s 5351(being)s 5921(found)s -6524(or)s 6768(permission)s 7860(being)s 8430(denied)s 480 11784(or)m -739(f)s 2(ailure)k 1415(of)s 1686(a)s 1852(system)s -2576(call)s 2975(are)s 3322(system)s 4046(errors.)s 4706(An)s -5056(error)s 5579(message)s 6445(describing)s 7494(the)s 7842(problem)s -8699(will)s 480 11543(be)m 758(printed)s 1489(on)s 1782(the)s -2125(client')s 13(s)k 2861(stderr)s 9(,)k 3498(and)s -3898(the)s 4241(client')s 13(s)k 4977(e)s 3(xit)k -5388(status)s 5978(will)s 6400(be)s 6678(255.)s 7138(If)s -7363(the)s 7707(client)s 8293(dies)s 8724(due)s 480 11303(to)m -719(a)s 885(signal)s 1511(this)s 1907(should)s 2604(be)s -2886(treated)s 3593(as)s 3843(a)s 4009(serious)s 4737(system)s -5461(error)s 13(.)k gsave -120 10963 translate +240 fnt84 8951 13844(7)m gsave +120 13337 translate 0.6953 1.0000 scale -240 fnt31 0 -52(\211H)m +240 fnt31 0 -52(\211P)m grestore gsave -120 10723 translate +120 13097 translate 0.6953 1.0000 scale 240 fnt31 -0 -52(\211\211hidecwd)m -grestore -480 10429(Pre)m 6(v)k 3(ents)k 1345(the)s -1693(calling)s 2396(process')s 13(s)k 3323(current)s 4059(directory)s -4975(name)s 5549(from)s 6073(being)s 6658(passed)s 7354(to)s -7593(the)s 7941(service;)s 8729(the)s 480 10189(null)m 907(string)s -1504(will)s 1930(be)s 2212(passed)s 2908(instead.)s gsave -120 9849 translate -0.6953 1.0000 scale -240 fnt31 -0 -52(\211P)m -grestore -gsave -120 9609 translate -0.6953 1.0000 scale -240 fnt31 0 -52(\211\211sigpipe)m +0 -52(\211\211sigpipe)m grestore -480 9315(If)m 700(the)s -1038(service)s 1760(program)s 2620(is)s 2820(terminated)s 3888(due)s -4280(to)s 4509(a)s gsave -4665 9369 translate +240 fnt82 480 12803(If)m 700(the)s 1038(service)s +1760(program)s 2620(is)s 2820(terminated)s 3888(due)s 4280(to)s +4509(a)s gsave +4665 12857 translate 0.6953 1.0000 scale 240 fnt31 0 -52(SIGPIPE)m grestore -5415(the)s -5753(e)s 3(xit)k 6157(status)s 6742(of)s 7003(the)s -7341(client)s 7921(will)s 8337(be)s 8608(zero,)s 480 9075(e)m 6(v)k 3(en)k +5415(the)s 5753(e)s 3(xit)k +6157(status)s 6742(of)s 7003(the)s 7341(client)s 7921(will)s +8337(be)s 8608(zero,)s 480 12563(e)m 6(v)k 3(en)k 967(if)s 1170(it)s 1349(w)s 2(ould)k 1990(ha)s 4(v)k 3(e)k 2477(been)s 2973(something)s 4009(else)s 4423(according)s 5405(to)s 5630(the)s 5965(e)s 3(xit)k 6366(status)s 6948(method)s -7710(speci\207ed.)s 8650(This)s 480 8835(option)m 1149(has)s 1519(no)s +7710(speci\207ed.)s 8650(This)s 480 12323(option)m 1149(has)s 1519(no)s 1812(ef)s 6(fect)k 2408(on)s 2705(the)s 3053(code)s 3561(and)s 3965(description)s 5084(printed)s 5819(if)s 6036(the)s 6384(e)s 3(xit)k 6799(status)s 7394(method)s gsave -8170 8889 translate +8170 12377 translate 0.6953 1.0000 scale 240 fnt31 0 -52(stdout)m grestore -8830(is)s 480 8595(in)m 723(use.)s gsave -120 8305 translate +8830(is)s 480 12083(in)m 723(use.)s gsave +120 11793 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211h)m grestore gsave -120 8065 translate +120 11553 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211\211help)m grestore gsave -120 7825 translate +120 11313 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211\211copyright)m grestore gsave -480 7585 translate +480 11073 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211h)m grestore -740 7531(or)m gsave -999 7585 translate +740 11019(or)m gsave +999 11073 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211\211help)m grestore 1659(prints)s 2254(the)s 2602(client')s 13(s)k 3342(usage)s 3943(message;)s gsave -4865 7585 translate +4865 11073 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211\211copyright)m grestore 6026(prints)s 6621(the)s 6969(cop)s 2(yright)k 7944(and)s 8348(lack)s 8807(of)s -480 7291(w)m 2(arranty)k 1381(notice.)s 9066 670 0 670 240 240 60 0 6161 LoutGr2 +480 10779(w)m 2(arranty)k 1381(notice.)s 9066 670 0 670 240 240 60 0 9649 LoutGr2 newpath 0 ysize 0.3 ft sub moveto xsize 0 rlineto 0 0.1 ft rlineto @@ -1832,30 +1839,30 @@ grestore 320 fnt84 0 66(2.2.)m 628(Security-o)s 3(v)k 3(erriding)k 3373(options)s grestore -0 5699(There)m +0 9187(There)m 613(are)s 960(also)s 1398(some)s 1959(options)s 2715(which)s 3357(are)s 3704(a)s 4(v)k 6(ailable)k 4612(for)s 4950(deb)s 4(ugging)k 6011(and)s 6415(to)s 6654(allo)s 6(w)k -7233(the)s 7581(system)s 0 5459(administrator)m 1333(to)s 1572(o)s 3(v)k 3(erride)k +7233(the)s 7581(system)s 0 8947(administrator)m 1333(to)s 1572(o)s 3(v)k 3(erride)k 2418(a)s 2584(user')s 13(s)k 3192(polic)s 3(y)k 15(.)k 3876(These)s 4503(options)s 5259(are)s 5606(a)s 4(v)k 6(ailable)k 6514(only)s 6994(if)s 7211(the)s 7559(client)s 8149(is)s -8359(called)s 0 5219(by)m 294(root)s 739(or)s 998(if)s +8359(called)s 0 8707(by)m 294(root)s 739(or)s 998(if)s 1215(the)s 1563(calling)s 2266(user)s 2724(is)s 2934(the)s 3282(same)s 3829(as)s 4079(the)s 4427(service)s 5159(user)s 13(.)k gsave -120 4865 translate +120 8353 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211\211override)m gsave 1584 0 translate 1.4219 1.0000 scale -240 fnt83 0 -52(con\207gur)m 3(ation-data)k +240 fnt83 0 -52(con\207gur)m 3(ation\211data)k grestore grestore gsave -120 4625 translate +120 8113 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211\211override\211file)m gsave 2304 0 translate @@ -1864,29 +1871,29 @@ gsave grestore grestore -480 4331(Do)m +480 7819(Do)m 826(not)s 1192(read)s 1661(the)s 2009(usual)s 2569(con\207guration)s 3902(\207les.)s 4404(Instead,)s 5201(the)s 5549(client)s 6139(sends)s -240 fnt83 6722 4333(con\207gur)m 3(ation-data)k 240 fnt82 480 4090(\(follo)m 6(wed)k +240 fnt83 6722 7821(con\207gur)m 3(ation-data)k 240 fnt82 480 7578(\(follo)m 6(wed)k 1461(by)s 1755(a)s 1921(ne)s 6(wline\))k 2800(or)s -3059(the)s 3407(contents)s 4255(of)s 240 fnt83 4526 4092(\207lename)m -240 fnt82 5390 4090(\(which)m 6111(is)s 6321(opened)s 7071(in)s +3059(the)s 3407(contents)s 4255(of)s 240 fnt83 4526 7580(\207lename)m +240 fnt82 5390 7578(\(which)m 6111(is)s 6321(opened)s 7071(in)s 7314(the)s 7662(conte)s 3(xt)k 8423(of)s 8694(the)s -480 3849(client\))m 1138(to)s 1377(the)s 1725(daemon)s 2540(and)s +480 7337(client\))m 1138(to)s 1377(the)s 1725(daemon)s 2540(and)s 2944(the)s 3292(daemon)s 4107(uses)s 4570(that)s 4988(data)s -5446(instead.)s 6227(The)s 240 fnt83 6655 3851(con\207gur)m 3(ation-data)k -240 fnt82 8503 3849(must)m 480 3609(all)m 772(be)s 1052(in)s +5446(instead.)s 6227(The)s 240 fnt83 6655 7339(con\207gur)m 3(ation-data)k +240 fnt82 8503 7337(must)m 480 7097(all)m 772(be)s 1052(in)s 1293(one)s 1693(ar)s 4(gument.)k 2694(It)s 2897(will)s 3321(ha)s 4(v)k 3(e)k 3820(a)s 3984(single)s 4609(ne)s 6(wline)k 5414(appended)s 6388(so)s 6652(that)s 7068(a)s 7232(single)s 7857(directi)s 6(v)k 3(e)k -8737(can)s 480 3369(easily)m 1083(be)s 1357(gi)s 6(v)k 3(en,)k +8737(can)s 480 6857(easily)m 1083(be)s 1357(gi)s 6(v)k 3(en,)k 1979(b)s 4(ut)k 2333(if)s 2542(more)s 3080(than)s 3541(one)s 3935(directi)s 6(v)k 3(e)k 4809(is)s 5011(required)s 5857(it)s 6040(will)s 6458(ha)s 4(v)k 3(e)k 6951(to)s 7182(contain)s 7935(one)s 8329(or)s 8579(more)s -480 3129(real)m 892(ne)s 6(wlines.)k gsave -120 2838 translate +480 6617(real)m 892(ne)s 6(wlines.)k gsave +120 6326 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211\211spoof\211user)m gsave @@ -1896,36 +1903,36 @@ gsave grestore grestore -480 2544(Pretend)m 1268(to)s 1507(the)s +480 6032(Pretend)m 1268(to)s 1507(the)s 1855(service)s 2587(that)s 3005(it)s 3197(is)s 3407(being)s -3992(called)s 4620(by)s 240 fnt83 4914 2546(user)m 240 fnt82 -5391 2544(\(which)m 6112(may)s 6578(be)s 6860(a)s 7026(username)s -7998(or)s 8257(a)s 8423(uid\).)s 480 2304(This)m 956(will)s +3992(called)s 4620(by)s 240 fnt83 4914 6034(user)m 240 fnt82 +5391 6032(\(which)m 6112(may)s 6578(be)s 6860(a)s 7026(username)s +7998(or)s 8257(a)s 8423(uid\).)s 480 5792(This)m 956(will)s 1382(also)s 1820(af)s 6(fect)k 2416(the)s 2764(group)s 3376(and)s 3780(supplementary)s 5242(groups)s 5945(supplied)s 6814(to)s 7053(the)s 7401(service;)s 8189(the)s 3(y)k 8652(will)s -480 2064(be)m 759(the)s 1103(standard)s 1968(group)s 2576(and)s -2977(supplementary)s 4435(groups)s 5135(for)s 240 fnt83 5469 2066(user)m -240 fnt82 5886 2064(.)m 5987(The)s gsave -6411 2118 translate +480 5552(be)m 759(the)s 1103(standard)s 1968(group)s 2576(and)s +2977(supplementary)s 4435(groups)s 5135(for)s 240 fnt83 5469 5554(user)m +240 fnt82 5886 5552(.)m 5987(The)s gsave +6411 5606 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211\211spoof\211user)m grestore -7669(option)s 8334(will)s 240 fnt83 8756 2066(not)m 240 fnt82 -480 1824(af)m 6(fect)k 1076(which)s 1718(user)s 2176(is)s +7669(option)s 8334(will)s 240 fnt83 8756 5554(not)m 240 fnt82 +480 5312(af)m 6(fect)k 1076(which)s 1718(user)s 2176(is)s 2386(chosen)s 3108(if)s 3325(the)s 3673(service)s 4405(user)s 4863(is)s 5073(speci\207ed)s 5981(as)s 6231(just)s gsave -6636 1878 translate +6636 5366 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211)m grestore 6736(;)s 6848(in)s 7091(this)s 7487(case)s -7954(the)s 8302(service)s 480 1584(user)m 938(will)s 1364(be)s +7954(the)s 8302(service)s 480 5072(user)m 938(will)s 1364(be)s 1646(the)s 1994(real)s 2406(calling)s 3109(user)s 13(.)k 0 52(User)m 511(service)s 1243(daemon)s 2058(and)s 2462(client)s -3052(speci\207cation)s 8472(0.61.4)s +3052(speci\207cation)s 8611(1.0.1)s grestore grestore @@ -2182,7 +2189,7 @@ grestore 8175(for)s 8513(the)s 0 864(rele)m 6(v)k 6(ant)k 817(\207le)s 1178(descriptor)s 2193(in)s 2436(the)s 2784(client')s 13(s)k 3524(ar)s 4(guments.)k 4620(By)s 4954(def)s 2(ault)k -5675(writing)s 6418(\207ledescriptors)s 7822(remain)s 8542(open)s 0 52(0.61.4)m +5675(writing)s 6418(\207ledescriptors)s 7822(remain)s 8542(open)s 0 52(1.0.1)m 4809(User)s 5320(service)s 6052(daemon)s 6867(and)s 7271(client)s 7861(speci\207cation)s grestore @@ -2409,7 +2416,7 @@ grestore 3671(be)s 3953(set)s 4278(appropriately)s 5606(\(according)s 6681(to)s 6920(the)s 7268(details)s 7942(of)s 8213(the)s 0 5083(service)m 732(user\).)s 0 52(User)m 511(service)s 1243(daemon)s 2058(and)s -2462(client)s 3052(speci\207cation)s 8472(0.61.4)s +2462(client)s 3052(speci\207cation)s 8611(1.0.1)s grestore grestore @@ -2660,7 +2667,7 @@ grestore 628(Con\207guration)s 2618(\207le)s 3100(dir)s 5(ecti)k 3(v)k 3(es)k grestore -0 52(0.61.4)m 4809(User)s 5320(service)s 6052(daemon)s 6867(and)s +0 52(1.0.1)m 4809(User)s 5320(service)s 6052(daemon)s 6867(and)s 7271(client)s 7861(speci\207cation)s grestore @@ -2725,84 +2732,84 @@ grestore 6048(It)s 6253(is)s 6463(an)s 6746(error)s 7269(if)s 7486(the)s 7834(directory)s 480 11808(cannot)m 1178(be)s 1460(changed)s 2316(to.)s gsave -480 11454 translate +2666 11862 translate 0.6953 1.0000 scale 240 fnt31 0 -52(cd)m grestore -740 11400(should)m 1437(not)s -1803(be)s 2085(used)s 2582(between)s gsave -3436 11454 translate +2926(should)s 3623(not)s +3989(be)s 4271(used)s 4768(between)s gsave +5622 11862 translate 0.6953 1.0000 scale 240 fnt31 0 -52(execute\211from\211directory)m grestore -5698(and)s 6102(the)s 6450(in)s 9(v)k 4(ocation)k -7504(of)s 7775(the)s 8123(service)s 480 11160(program,)m 1397(as)s -1647(the)s 1995(test)s 2386(for)s 2724(the)s 3072(a)s 4(v)k 6(ailability)k -4190(of)s 4461(the)s 4809(service)s 5541(program)s 6411(w)s 2(ould)k -7066(be)s 7348(done)s 7870(with)s 8352(the)s 8700(old)s -480 10920(current)m 1216(directory)s 2132(and)s 2536(the)s 2884(actual)s -3509(e)s 3(x)k 3(ecution)k 4490(with)s 4972(the)s -5320(ne)s 6(w)k 5767(\(probably)s 6751(causing)s 7535(an)s -7818(error\).)s gsave -120 10580 translate +7884(and)s 8288(the)s 480 11568(in)m 9(v)k 4(ocation)k +1534(of)s 1805(the)s 2153(service)s 2885(program,)s 3802(as)s +4052(the)s 4400(test)s 4791(for)s 5129(the)s 5477(a)s 4(v)k 6(ailability)k +6595(of)s 6866(the)s 7214(service)s 7946(program)s 480 11328(w)m 2(ould)k +1117(be)s 1380(done)s 1884(with)s 2347(the)s 2677(old)s +3022(current)s 3740(directory)s 4637(and)s 5023(the)s 5352(actual)s +5959(e)s 3(x)k 3(ecution)k 6921(with)s 7385(the)s +7714(ne)s 6(w)k 8142(\(probably)s 480 11088(causing)m 1264(an)s +1547(error\).)s gsave +120 10748 translate 0.6953 1.0000 scale 240 fnt31 0 -52(eof)m grestore -480 10286(Stop)m 972(reading)s +480 10454(Stop)m 972(reading)s 1742(the)s 2090(con\207guration)s 3423(\207le)s 3784(in)s 4027(question,)s 4945(as)s 5195(if)s 5412(end)s 5816(of)s 6087(\207le)s 6448(had)s 6852(been)s 7361(reached.)s 8208(An)s 3(y)k -480 10046(control)m 1212(constructs)s 2232(\()s gsave -2305 10100 translate +480 10214(control)m 1212(constructs)s 2232(\()s gsave +2305 10268 translate 0.6953 1.0000 scale 240 fnt31 0 -52(if)m grestore 2505(,)s gsave -2612 10100 translate +2612 10268 translate 0.6953 1.0000 scale 240 fnt31 0 -52(catch\211quit)m grestore 3673(or)s gsave -3932 10100 translate +3932 10268 translate 0.6953 1.0000 scale 240 fnt31 0 -52(errors\211push)m grestore 5033(\))s 5161(which)s 5803(were)s 6323(started)s 7017(in)s 7260(that)s 7678(\207le)s 8039(will)s 8465(be)s -480 9806(considered)m 1574(\207nished.)s 2436(P)s 3(arsing)k 3203(will)s +480 9974(considered)m 1574(\207nished.)s 2436(P)s 3(arsing)k 3203(will)s 3629(continue)s 4509(in)s 4752(the)s 5100(\207le)s 5461(which)s 6103(caused)s 6812(the)s 7160(\207le)s 7521(containing)s 8584(the)s gsave -480 9620 translate +480 9788 translate 0.6953 1.0000 scale 240 fnt31 0 -52(eof)m grestore -840 9566(to)m 1079(be)s 1361(read.)s +840 9734(to)m 1079(be)s 1361(read.)s gsave -120 9276 translate +120 9444 translate 0.6953 1.0000 scale 240 fnt31 0 -52(quit)m grestore -480 8982(Stop)m 969(reading)s 1735(con\207guration)s +480 9150(Stop)m 969(reading)s 1735(con\207guration)s 3064(\207les)s 3510(and)s 3910(act)s 4244(immediately)s 5489(on)s 5782(the)s 6126(current)s 6859(settings.)s 7689(The)s 8113(beha)s 4(viour)k -480 8742(of)m gsave -751 8796 translate +480 8910(of)m gsave +751 8964 translate 0.6953 1.0000 scale 240 fnt31 0 -52(quit)m grestore 1211(is)s 1421(subject)s 2158(to)s 2397(the)s gsave -2745 8796 translate +2745 8964 translate 0.6953 1.0000 scale 240 fnt31 0 -52(catch\211quit)m grestore 3806(control)s 4538(construct.)s gsave -120 8402 translate +120 8570 translate 0.6953 1.0000 scale 240 fnt31 0 -52(include)m gsave 1152 0 translate @@ -2813,7 +2820,7 @@ grestore grestore gsave -120 8162 translate +120 8330 translate 0.6953 1.0000 scale 240 fnt31 0 -52(include\211ifexist)m gsave 2304 0 translate @@ -2822,25 +2829,25 @@ gsave grestore grestore -480 7868(Read)m -1026(the)s 1369(con\207guration)s 2698(\207le)s 240 fnt83 3054 7870(\207lename)m -240 fnt82 3858 7868(,)m 3961(and)s 4360(then)s 4825(return)s +480 8036(Read)m +1026(the)s 1369(con\207guration)s 2698(\207le)s 240 fnt83 3054 8038(\207lename)m +240 fnt82 3858 8036(,)m 3961(and)s 4360(then)s 4825(return)s 5447(to)s 5682(this)s 6073(\207le)s 6430(and)s 6829(continue)s -7705(parsing)s 8457(it)s 8644(with)s 480 7628(the)m 822(ne)s 3(xt)k +7705(parsing)s 8457(it)s 8644(with)s 480 7796(the)m 822(ne)s 3(xt)k 1284(directi)s 6(v)k 3(e.)k 2207(It)s 2405(is)s 2608(an)s 2884(error)s 3400(if)s 3610(the)s 3952(\207le)s 4306(cannot)s 4997(be)s 5272(opened)s 6015(and)s 6412(read,)s 6923(unless)s gsave -7565 7682 translate +7565 7850 translate 0.6953 1.0000 scale 240 fnt31 0 -52(include\211ifexist)m grestore -480 7388(is)m 690(used)s +480 7556(is)m 690(used)s 1187(and)s 1591(the)s 1939(\207le)s 2300(does)s 2790(not)s 3156(e)s 3(xist,)k 3711(in)s 3954(which)s 4596(case)s 5063(the)s 5411(directi)s 6(v)k 3(e)k 6293(is)s 6503(silently)s 7260(ignored.)s gsave -120 7048 translate +120 7216 translate 0.6953 1.0000 scale 240 fnt31 0 -52(include\211lookup)m gsave 2160 0 translate @@ -2857,7 +2864,7 @@ grestore grestore gsave -120 6808 translate +120 6976 translate 0.6953 1.0000 scale 240 fnt31 0 -52(include\211lookup\211all)m gsave 2736 0 translate @@ -2872,113 +2879,113 @@ gsave grestore grestore -480 6514(Read)m 1030(the)s -1378(con\207guration)s 2711(\207le)s 3072(in)s 240 fnt83 3315 6516(dir)m 8(ectory)k -240 fnt82 4239 6514(whose)m 4907(name)s 5481(is)s 5691(the)s -6039(v)s 6(alue)k 6607(of)s 240 fnt83 6878 6516(par)m 3(ameter)k -240 fnt82 7937 6514(\(see)m 8377(the)s 480 6274(description)m 1599(of)s +480 6682(Read)m 1030(the)s +1378(con\207guration)s 2711(\207le)s 3072(in)s 240 fnt83 3315 6684(dir)m 8(ectory)k +240 fnt82 4239 6682(whose)m 4907(name)s 5481(is)s 5691(the)s +6039(v)s 6(alue)k 6607(of)s 240 fnt83 6878 6684(par)m 3(ameter)k +240 fnt82 7937 6682(\(see)m 8377(the)s 480 6442(description)m 1599(of)s gsave -1870 6328 translate +1870 6496 translate 0.6953 1.0000 scale 240 fnt31 0 -52(if)m grestore 2070(,)s 2177(`Control)s 3042(structure)s 3933(directi)s 6(v)k 3(es',)k 5038(page)s 5546(12\).)s -5969(If)s 240 fnt83 6199 6276(par)m 3(ameter)k 240 fnt82 -7258 6274(has)m 7628(se)s 6(v)k 3(eral)k 8350(v)s 6(alues)k -480 6034(the)m 3(y)k 943(will)s 1369(be)s 1651(tried)s +5969(If)s 240 fnt83 6199 6444(par)m 3(ameter)k 240 fnt82 +7258 6442(has)m 7628(se)s 6(v)k 3(eral)k 8350(v)s 6(alues)k +480 6202(the)m 3(y)k 943(will)s 1369(be)s 1651(tried)s 2146(in)s 2389(order;)s 3005(with)s gsave -3487 6088 translate +3487 6256 translate 0.6953 1.0000 scale 240 fnt31 0 -52(include\211lookup)m grestore 4948(this)s 5344(search)s 6011(will)s 6437(stop)s 6889(when)s 7465(one)s 7867(is)s 8077(found,)s 8743(b)s 4(ut)k -480 5794(with)m gsave -962 5848 translate +480 5962(with)m gsave +962 6016 translate 0.6953 1.0000 scale 240 fnt31 0 -52(include\211lookup\211all)m grestore 2824(the)s 3172(search)s 3839(will)s 4265(continue)s 5145(and)s 5549(an)s 3(y)k 5946(\207les)s 6395(appropriate)s 7539(to)s 7778(other)s 8329(v)s 6(alues)k -480 5554(will)m 906(be)s 1188(read)s 1657(too.)s 480 5146(If)m -700(none)s 1212(of)s 1473(the)s 1811(parameter')s 13(s)k -2965(v)s 6(alues)k 3610(had)s 4004(a)s 4160(corresponding)s -5572(\207le)s 5923(then)s 6381(the)s 6719(\207le)s gsave -7070 5200 translate +480 5722(will)m 906(be)s 1188(read)s 1657(too.)s 2127(If)s +2357(none)s 2879(of)s 3150(the)s 3498(parameter')s 13(s)k +4662(v)s 6(alues)k 5318(had)s 5722(a)s 5888(corresponding)s +7310(\207le)s 7671(then)s 8140(the)s 8488(\207le)s gsave +480 5536 translate 0.6953 1.0000 scale 240 fnt31 0 -52(:default)m grestore -7921(will)s 8337(be)s 8608(read,)s 480 4906(if)m -697(it)s 889(e)s 3(xists.)k 1534(If)s 240 fnt83 -1764 4908(par)m 3(ameter)k 240 fnt82 2763 4906(')m 13(s)k -2973(list)s 3324(of)s 3595(v)s 6(alues)k 4251(w)s 2(as)k -4672(empty)s 5324(then)s 5793(the)s 6141(\207le)s gsave -6502 4960 translate +1340 5482(will)m 1765(be)s 2045(read,)s 2562(if)s +2778(it)s 2968(e)s 3(xists.)k 3612(If)s 240 fnt83 +3841 5484(par)m 3(ameter)k 240 fnt82 4840 5482(')m 13(s)k +5048(list)s 5398(of)s 5668(v)s 6(alues)k 6322(w)s 2(as)k +6742(empty)s 7393(then)s 7860(the)s 8207(\207le)s gsave +8566 5536 translate 0.6953 1.0000 scale 240 fnt31 0 -52(:none)m grestore -7062(will)s 7488(be)s 7770(tried)s 8265(\207rst)s -8696(and)s 480 4666(read)m 949(if)s 1166(it)s 1358(e)s 3(xists,)k -2006(otherwise)s gsave -2991 4720 translate +480 5242(will)m 906(be)s 1188(tried)s 1683(\207rst)s +2114(and)s 2518(read)s 2987(if)s 3204(it)s 3396(e)s 3(xists,)k +4044(otherwise)s gsave +5029 5296 translate 0.6953 1.0000 scale 240 fnt31 0 -52(:default)m grestore -3852(will)s 4278(be)s -4560(tried.)s 480 4258(It)m 685(is)s 895(not)s 1261(an)s -1544(error)s 2067(for)s 2405(an)s 3(y)k 2802(of)s -3073(the)s 3421(\207les)s 3870(\(including)s gsave -4906 4312 translate +5890(will)s 6316(be)s +6598(tried.)s 7199(It)s 7404(is)s 7614(not)s 7980(an)s +8263(error)s 8786(for)s 480 5002(an)m 3(y)k 877(of)s +1148(the)s 1496(\207les)s 1945(\(including)s gsave +2981 5056 translate 0.6953 1.0000 scale 240 fnt31 0 -52(:default)m grestore -5707(\))s 5835(not)s 6201(to)s 6440(e)s 3(xist,)k -6995(b)s 4(ut)k 7357(it)s 7549(is)s 7759(an)s -8042(error)s 8565(if)s 8782(a)s 480 4018(\207le)m 841(e)s 3(xists)k -1433(and)s 1837(cannot)s 2535(be)s 2817(read)s 3286(or)s -3545(if)s 3762(the)s 4110(directory)s 5026(cannot)s 5724(be)s -6006(accessed.)s 480 3610(A)m 693(translation)s 1741(will)s 2150(be)s -2415(applied)s 3160(to)s 3382(v)s 6(alues)k 4021(before)s -4670(the)s 3(y)k 5116(are)s 5446(used)s 5926(to)s -6148(construct)s 7067(a)s 7216(\207lename,)s 8129(so)s 8378(that)s -8778(the)s 480 3370(lookup)m 1195(cannot)s 1888(access)s 2545(dot\207les)s -3295(or)s 3550(\207les)s 3994(in)s 4232(other)s 4779(directories:)s -5887(v)s 6(alues)k 6539(starting)s 7303(with)s 7781(full)s -8162(stops)s 8700(will)s 480 3130(ha)m 4(v)k 3(e)k -970(a)s 1124(colon)s 1702(prepended)s 2745(\(making)s gsave -3584 3184 translate +3782(\))s 3910(not)s 4276(to)s 4515(e)s 3(xist,)k +5070(b)s 4(ut)k 5432(it)s 5624(is)s 5834(an)s +6117(error)s 6640(if)s 6857(a)s 7023(\207le)s 7384(e)s 3(xists)k +7976(and)s 8380(cannot)s 480 4762(be)m 753(read)s 1213(or)s +1462(if)s 1670(the)s 2008(directory)s 2915(cannot)s 3603(be)s +3876(accessed.)s 4867(A)s 5087(translation)s 6143(will)s 6559(be)s +6832(applied)s 7584(to)s 7814(v)s 6(alues)k 8460(before)s +480 4522(the)m 3(y)k 943(are)s 1290(used)s 1787(to)s +2026(construct)s 2962(a)s 3128(\207lename,)s 4058(so)s 4324(that)s +4742(the)s 5090(lookup)s 5809(cannot)s 6507(access)s 7168(dot\207les)s +7923(or)s 8182(\207les)s 8631(in)s 480 4282(other)m 1031(directories:)s +2144(v)s 6(alues)k 2800(starting)s 3569(with)s 4051(full)s +4437(stops)s 4980(will)s 5406(ha)s 4(v)k 3(e)k +5907(a)s 6073(colon)s 6662(prepended)s 7717(\(making)s gsave +8567 4336 translate 0.6953 1.0000 scale 240 fnt31 0 -52(:.)m grestore -3784(\),)s 3958(colons)s 4623(will)s 5037(be)s -5308(doubled,)s 6175(and)s 6568(each)s 7051(slash)s 7575(will)s -7989(be)s 8259(replaced)s 480 2890(with)m 962(a)s 1128(colon)s -1717(follo)s 6(wed)k 2619(by)s 2913(a)s 3079(h)s 1(yphen)k +8767(\),)s 480 4042(colons)m 1156(will)s 1582(be)s +1864(doubled,)s 2743(and)s 3147(each)s 3642(slash)s 4177(will)s +4603(be)s 4885(replaced)s 5752(with)s 6234(a)s 6400(colon)s +6989(follo)s 6(wed)k 7891(by)s 8185(a)s 8351(h)s 1(yphen)k gsave -3841 2944 translate +480 3856 translate 0.6953 1.0000 scale 240 fnt31 0 -52(:\211)m grestore -4041(.)s 4145(A)s 4375(parameter)s -5389(v)s 6(alue)k 5957(which)s 6599(is)s 6809(the)s -7157(empty)s 7809(string)s 8406(will)s 8832(be)s 480 2650(replaced)m -1347(with)s gsave -1829 2704 translate +680 3802(.)m 784(A)s 1014(parameter)s +2028(v)s 6(alue)k 2596(which)s 3238(is)s 3448(the)s +3796(empty)s 4448(string)s 5045(will)s 5471(be)s 5753(replaced)s +6620(with)s gsave +7102 3856 translate 0.6953 1.0000 scale 240 fnt31 0 -52(:empty)m grestore -2489(\(note)s 3036(that)s -3454(this)s 3850(is)s 4060(dif)s 6(ferent)k 4935(from)s -5459(a)s 5625(parameter)s 6639(not)s 7005(ha)s 4(ving)k -7706(an)s 3(y)k 8103(v)s 6(alues\).)k gsave -120 2310 translate +7762(\(note)s 8309(that)s +8727(this)s 480 3562(is)m 690(dif)s 6(ferent)k 1565(from)s +2089(a)s 2255(parameter)s 3269(not)s 3635(ha)s 4(ving)k +4336(an)s 3(y)k 4733(v)s 6(alues\).)k gsave +120 3222 translate 0.6953 1.0000 scale 240 fnt31 0 -52(include\211directory)m gsave @@ -2988,26 +2995,26 @@ grestore grestore grestore -480 2016(Read)m +480 2928(Read)m 1030(con\207guration)s 2363(from)s 2887(all)s 3180(\207les)s 3629(in)s -3872(directory)s 240 fnt83 4788 2018(dir)m 8(ectory)k 240 fnt82 -5712 2016(which)m 6354(are)s 6701(plain)s 7236(\207les)s 7685(whose)s -8353(names)s 480 1776(consist)m 1204(only)s 1684(of)s 1955(alphanumerics)s +3872(directory)s 240 fnt83 4788 2930(dir)m 8(ectory)k 240 fnt82 +5712 2928(which)m 6354(are)s 6701(plain)s 7236(\207les)s 7685(whose)s +8353(names)s 480 2688(consist)m 1204(only)s 1684(of)s 1955(alphanumerics)s 3400(and)s 3804(h)s 1(yphens)k 4653(and)s 5057(start)s 5527(with)s 6009(an)s 6292(alphanumeric.)s 7697(The)s 3(y)k -8240(will)s 8666(be)s 480 1536(read)m 949(in)s 1192(le)s 3(xical)k +8240(will)s 8666(be)s 480 2448(read)m 949(in)s 1192(le)s 3(xical)k 1880(order)s 13(.)k 2475(It)s 2680(is)s 2890(an)s 3173(error)s 3696(for)s 4034(the)s 4382(directory)s 5298(not)s 5664(to)s 5903(e)s 3(xist)k 6411(or)s 6670(for)s 7008(it)s 7200(or)s 7459(an)s 3(y)k 7856(of)s -8127(the)s 8475(\207les)s 480 1296(found)m 1089(not)s 1447(to)s +8127(the)s 8475(\207les)s 480 2208(found)m 1089(not)s 1447(to)s 1677(be)s 1951(read)s 2411(successfully)s 15(,)k 3663(or)s 3914(for)s 4243(an)s 3(ything)k 5123(with)s 5596(an)s 5871(appropriate)s 7007(name)s 7572(not)s 7930(to)s 8160(be)s -8434(a)s 8591(plain)s 480 1056(\207le)m 841(or)s 1100(a)s +8434(a)s 8591(plain)s 480 1968(\207le)m 841(or)s 1100(a)s 1266(symbolic)s 2196(link)s 2629(to)s 2868(a)s 3034(plain)s 3569(\207le.)s gsave -120 716 translate +120 1628 translate 0.6953 1.0000 scale 240 fnt31 0 -52(error)m gsave 864 0 translate @@ -3017,8 +3024,19 @@ grestore grestore grestore -0 52(User)m 511(service)s 1243(daemon)s 2058(and)s -2462(client)s 3052(speci\207cation)s 8472(0.61.4)s +480 1334(Causes)m 1209(an)s 1492(error)s 2015(whose)s +2683(message)s 3549(includes)s 4397(the)s 4745(descripti)s 6(v)k 3(e)k +5840(string)s 240 fnt83 6437 1336(te)m 4(xt)k 240 fnt82 +6781 1334(.)m 240 fnt83 6885 1336(te)m 4(xt)k 240 fnt82 +7289 1334(may)m 7755(consist)s 8479(of)s 480 1094(se)m 6(v)k 3(eral)k +1192(tok)s 2(ens)k 1855(with)s 2326(interv)s 3(ening)k +3454(whitespace.)s 4609(The)s 5026(whitespace)s 6134(will)s 6549(be)s +6820(included)s 7691(in)s 7923(the)s 8260(message)s 480 854(as)m +726(found)s 1338(in)s 1576(the)s 1919(con\207guration)s 3247(\207le:)s +3653(all)s 3941(the)s 4284(characters)s 5298(until)s 5786(the)s +6129(end)s 6528(of)s 6794(the)s 7137(line)s 7546(will)s +7967(be)s 8244(included)s 0 52(User)m 511(service)s 1243(daemon)s +2058(and)s 2462(client)s 3052(speci\207cation)s 8611(1.0.1)s grestore grestore @@ -3030,8 +3048,8 @@ showpage %%BeginPageSetup %%PageResources: font Times-Roman %%+ font Times-Bold -%%+ font Times-Italic %%+ font Courier-Bold +%%+ font Times-Italic /pgsave save def 0.0500 dup scale 10 setlinewidth %%EndPageSetup @@ -3057,55 +3075,44 @@ gsave gsave 0 LoutMargSet grestore -240 fnt84 0 13842(12)m 240 fnt82 480 13254(Causes)m 1209(an)s -1492(error)s 2015(whose)s 2683(message)s 3549(includes)s 4397(the)s -4745(descripti)s 6(v)k 3(e)k 5840(string)s 240 fnt83 -6437 13256(te)m 4(xt)k 240 fnt82 6781 13254(.)m 240 fnt83 -6885 13256(te)m 4(xt)k 240 fnt82 7289 13254(may)m 7755(consist)s -8479(of)s 480 13014(se)m 6(v)k 3(eral)k 1192(tok)s 2(ens)k -1855(with)s 2326(interv)s 3(ening)k 3454(whitespace.)s 4609(The)s -5026(whitespace)s 6134(will)s 6549(be)s 6820(included)s 7691(in)s -7923(the)s 8260(message)s 480 12774(as)m 726(found)s 1338(in)s -1576(the)s 1919(con\207guration)s 3247(\207le:)s 3653(all)s 3941(the)s -4284(characters)s 5298(until)s 5786(the)s 6129(end)s 6528(of)s -6794(the)s 7137(line)s 7546(will)s 7967(be)s 8244(included)s -480 12534(v)m 3(erbatim,)k 1433(unless)s 2082(the)s 3(y)k -2545(are)s 2892(part)s 3323(of)s 3594(a)s 3760(double-quoted)s -5201(string,)s 5852(in)s 6095(which)s 6737(case)s 7204(the)s -7552(usual)s 8112(meaning)s 480 12294(of)m 751(the)s 1099(string)s -1696(\(i.e.,)s 2174(after)s 2670(backslash)s 3657(escape)s 4350(processing\))s -5501(will)s 5927(be)s 6209(used.)s 6752(Comments)s 7840(and)s -8244(linear)s 480 12054(whitespace)m 1598(at)s 1830(the)s 2178(end)s -2582(of)s 2853(the)s 3201(line)s 3615(\(or)s 3953(just)s -4358(before)s 5024(the)s 5372(comment\))s 6390(will)s 6816(still)s -7228(be)s 7510(ignored.)s gsave -120 11714 translate +240 fnt84 0 13842(12)m 240 fnt82 480 13254(v)m 3(erbatim,)k +1433(unless)s 2082(the)s 3(y)k 2545(are)s 2892(part)s +3323(of)s 3594(a)s 3760(double-quoted)s 5201(string,)s 5852(in)s +6095(which)s 6737(case)s 7204(the)s 7552(usual)s 8112(meaning)s +480 13014(of)m 751(the)s 1099(string)s 1696(\(i.e.,)s 2174(after)s +2670(backslash)s 3657(escape)s 4350(processing\))s 5501(will)s 5927(be)s +6209(used.)s 6752(Comments)s 7840(and)s 8244(linear)s 480 12774(whitespace)m +1598(at)s 1830(the)s 2178(end)s 2582(of)s 2853(the)s +3201(line)s 3615(\(or)s 3953(just)s 4358(before)s 5024(the)s +5372(comment\))s 6390(will)s 6816(still)s 7228(be)s 7510(ignored.)s +gsave +120 12434 translate 0.6953 1.0000 scale 240 fnt31 0 -52(message)m gsave 1152 0 translate 1.4219 1.0000 scale -240 fnt83 -0 -52(te)m 4(xt)k 404(\202)s +240 fnt83 0 -52(te)m 4(xt)k +404(\202)s grestore grestore -480 11420(Causes)m 1209(a)s -1375(message)s 2241(including)s 3198(the)s 3546(descripti)s 6(v)k 3(e)k -4641(string)s 240 fnt83 5238 11422(te)m 4(xt)k 240 fnt82 -5642 11420(to)m 5881(be)s 6163(deli)s 6(v)k 3(ered)k -7101(as)s 7351(if)s 7568(it)s 7760(were)s 8280(an)s -8563(error)s 480 11180(message,)m 1397(b)s 4(ut)k 1759(does)s -2249(not)s 2615(actually)s 3425(cause)s 4012(an)s 4295(error)s 13(.)k -300 fnt84 0 10513(4.2.2.)m 813(Dir)s 5(ecti)k 3(v)k 3(es)k +480 12140(Causes)m 1209(a)s 1375(message)s 2241(including)s +3198(the)s 3546(descripti)s 6(v)k 3(e)k 4641(string)s +240 fnt83 5238 12142(te)m 4(xt)k 240 fnt82 5642 12140(to)m +5881(be)s 6163(deli)s 6(v)k 3(ered)k 7101(as)s +7351(if)s 7568(it)s 7760(were)s 8280(an)s 8563(error)s +480 11900(message,)m 1397(b)s 4(ut)k 1759(does)s 2249(not)s +2615(actually)s 3425(cause)s 4012(an)s 4295(error)s 13(.)k +300 fnt84 0 11233(4.2.2.)m 813(Dir)s 5(ecti)k 3(v)k 3(es)k 2148(with)s 2781(delay)s 3(ed)k 3828(effect)s 240 fnt82 -0 9942(The)m 428(follo)s 6(wing)k 1405(directi)s 6(v)k 3(es)k +0 10662(The)m 428(follo)s 6(wing)k 1405(directi)s 6(v)k 3(es)k 2375(ha)s 4(v)k 3(e)k 2876(no)s 3169(immediate)s 4233(ef)s 6(fect,)k 4876(b)s 4(ut)k 5238(are)s 5585(remembered)s 6837(and)s 7241(ha)s 4(v)k 3(e)k -7742(an)s 8025(ef)s 6(fect)k 8621(on)s 0 9702(later)m +7742(an)s 8025(ef)s 6(fect)k 8621(on)s 0 10422(later)m 483(processing)s 1559(of)s 1830(the)s 2178(con\207guration)s 3511(\207les.)s gsave -120 9348 translate +120 10068 translate 0.6953 1.0000 scale 240 fnt31 0 -52(user\211rcfile)m gsave 1728 0 translate @@ -3114,99 +3121,99 @@ gsave grestore grestore -480 9054(Speci\207es)m -1380(that)s 1784(the)s 2118(\207le)s 240 fnt83 2465 9056(\207lename)m -240 fnt82 3315 9054(should)m 3998(be)s 4266(read)s 4721(instead)s +480 9774(Speci\207es)m +1380(that)s 1784(the)s 2118(\207le)s 240 fnt83 2465 9776(\207lename)m +240 fnt82 3315 9774(should)m 3998(be)s 4266(read)s 4721(instead)s 5442(of)s 5699(the)s 6033(user')s 13(s)k gsave -6627 9108 translate +6627 9828 translate 0.6953 1.0000 scale 240 fnt31 0 -52(~/.userv/rc)m grestore 7728(.)s 7818(This)s 8280(does)s 240 fnt83 -8756 9056(not)m 240 fnt82 480 8814(happen)m 1229(immediately;)s 2535(instead,)s +8756 9776(not)m 240 fnt82 480 9534(happen)m 1229(immediately;)s 2535(instead,)s 3319(the)s 3667(setting)s 4357(is)s 4567(remembered)s 5819(and)s 6223(used)s 6720(after)s 7216(the)s gsave -7564 8868 translate +7564 9588 translate 0.6953 1.0000 scale 240 fnt31 0 -52(system.default)m grestore -480 8574(con\207guration)m 1812(\207le)s 2171(has)s 2539(been)s 3046(read.)s +480 9294(con\207guration)m 1812(\207le)s 2171(has)s 2539(been)s 3046(read.)s 3559(This)s 4033(directi)s 6(v)k 3(e)k 4913(has)s 5281(no)s 5572(ef)s 6(fect)k 6166(in)s 6407(a)s 6571(user')s 13(s)k 7177(con\207guration)s 8508(\207le)s 8867(or)s -480 8334(in)m 723(the)s gsave -1071 8388 translate +480 9054(in)m 723(the)s gsave +1071 9108 translate 0.6953 1.0000 scale 240 fnt31 0 -52(system.override)m grestore 2632(\207le,)s 3044(as)s 3294(the)s 3642(user')s 13(s)k 4250(con\207guration)s 5583(\207le)s 5944(has)s 6314(already)s 7071(been)s 7580(found)s -8197(and)s 8601(read)s 480 8094(by)m 774(then)s 1243(and)s +8197(and)s 8601(read)s 480 8814(by)m 774(then)s 1243(and)s 1647(will)s 2073(not)s 2439(be)s 2721(re-read.)s gsave -120 7754 translate +120 8474 translate 0.6953 1.0000 scale 240 fnt31 0 -52(errors\211to\211stderr)m grestore -480 7460(Causes)m 1209(error)s 1732(messages)s 2686(to)s +480 8180(Causes)m 1209(error)s 1732(messages)s 2686(to)s 2925(be)s 3207(deli)s 6(v)k 3(ered)k 4145(to)s 4384(the)s 4732(client')s 13(s)k 5472(stderr)s 13(.)k gsave -120 7120 translate +120 7840 translate 0.6953 1.0000 scale 240 fnt31 0 -52(errors\211to\211file)m grestore -240 fnt83 1581 7068(\207lename)m 240 fnt82 -480 6826(Error)m 1039(messages)s 1989(will)s 2410(be)s 2688(written)s -3416(to)s 240 fnt83 3651 6828(\207lename)m 240 fnt82 4455 6826(,)m +240 fnt83 1581 7788(\207lename)m 240 fnt82 +480 7546(Error)m 1039(messages)s 1989(will)s 2410(be)s 2688(written)s +3416(to)s 240 fnt83 3651 7548(\207lename)m 240 fnt82 4455 7546(,)m 4557(which)s 5195(will)s 5617(be)s 5894(opened)s 6640(in)s 6878(the)s 7222(conte)s 3(xt)k 7978(of)s 8245(and)s -8644(with)s 480 6586(the)m 828(pri)s 6(vile)k 3(ges)k +8644(with)s 480 7306(the)m 828(pri)s 6(vile)k 3(ges)k 1812(of)s 2083(the)s 2431(service)s 3163(user)s 13(.)k gsave -120 6246 translate +120 6966 translate 0.6953 1.0000 scale 240 fnt31 0 -52(errors\211to\211syslog)m grestore -1782 6192([)m 240 fnt83 1853 6194(facility)m -240 fnt82 2571 6192([)m 240 fnt83 2642 6194(le)m 3(vel)k -240 fnt82 3089 6192(]])m 480 5952(Error)m 1043(messages)s 1997(will)s +1782 6912([)m 240 fnt83 1853 6914(facility)m +240 fnt82 2571 6912([)m 240 fnt83 2642 6914(le)m 3(vel)k +240 fnt82 3089 6912(]])m 480 6672(Error)m 1043(messages)s 1997(will)s 2423(be)s 2705(deli)s 6(v)k 3(ered)k 3643(using)s gsave -4215 6006 translate +4215 6726 translate 0.6953 1.0000 scale 240 fnt31 0 -52(syslog)m grestore 4815(.)s 4919(The)s 5347(def)s 2(ault)k -240 fnt83 6068 5954(facility)m 240 fnt82 6786 5952(is)m gsave -6996 6006 translate +240 fnt83 6068 6674(facility)m 240 fnt82 6786 6672(is)m gsave +6996 6726 translate 0.6953 1.0000 scale 240 fnt31 0 -52(user)m grestore 7396(;)s 7508(the)s 7856(def)s 2(ault)k -240 fnt83 8577 5954(le)m 3(vel)k 240 fnt82 480 5712(is)m +240 fnt83 8577 6674(le)m 3(vel)k 240 fnt82 480 6432(is)m gsave -690 5766 translate +690 6486 translate 0.6953 1.0000 scale 240 fnt31 0 -52(error)m grestore -1190(.)s 300 fnt84 0 5095(4.2.3.)m +1190(.)s 300 fnt84 0 5815(4.2.3.)m 813(Contr)s 5(ol)k 1874(structur)s 5(e)k 3117(dir)s 5(ecti)k 3(v)k 3(es)k -240 fnt82 0 4580(The)m 421(follo)s 6(wing)k 1390(directi)s 6(v)k 3(es)k +240 fnt82 0 5300(The)m 421(follo)s 6(wing)k 1390(directi)s 6(v)k 3(es)k 2353(are)s 2692(used)s 3182(to)s 3413(create)s 4031(control)s 4755(structures.)s 5780(If)s 6002(the)s 6343(end)s 6739(of)s -7003(the)s 7343(\207le)s 7697(is)s 7899(encountered)s 0 4340(before)m +7003(the)s 7343(\207le)s 7697(is)s 7899(encountered)s 0 5060(before)m 666(the)s 1014(end)s 1418(of)s 1689(an)s 3(y)k 2086(control)s 2818(structure)s 3709(which)s 4351(w)s 2(as)k 4772(started)s 5466(inside)s 6093(it)s 6285(then)s 6754(that)s -7172(control)s 7904(structure)s 8795(is)s 0 4100(considered)m 1094(\207nished.)s +7172(control)s 7904(structure)s 8795(is)s 0 4820(considered)m 1094(\207nished.)s 1956(This)s 2432(is)s 2642(not)s 3008(an)s 3291(error)s 13(.)k gsave -120 3746 translate +120 4466 translate 0.6953 1.0000 scale 240 fnt31 0 -52(if)m gsave 432 0 translate @@ -3216,7 +3223,7 @@ grestore grestore gsave -120 3506 translate +120 4226 translate 0.6953 1.0000 scale 240 fnt31 0 -52(elif)m gsave @@ -3227,38 +3234,38 @@ grestore grestore gsave -120 3266 translate +120 3986 translate 0.6953 1.0000 scale 240 fnt31 0 -52(else)m grestore gsave -120 3026 translate +120 3746 translate 0.6953 1.0000 scale 240 fnt31 0 -52(fi)m grestore -480 2732(Lines)m 1062(follo)s 6(wing)k +480 3452(Lines)m 1062(follo)s 6(wing)k gsave -2039 2786 translate +2039 3506 translate 0.6953 1.0000 scale 240 fnt31 0 -52(if)m grestore 2299(are)s 2646(interpreted)s 3738(only)s 4218(if)s 4435(the)s 4783(condition)s 5744(is)s 5954(true.)s -6429(Man)s 3(y)k 7039(conditions)s 8087(are)s 480 2492(properties)m +6429(Man)s 3(y)k 7039(conditions)s 8087(are)s 480 3212(properties)m 1486(of)s 1757(parameter)s 2771(v)s 6(alues.)k 3480(Most)s 4032(parameters)s 5130(ha)s 4(v)k 3(e)k 5631(a)s 5797(single)s 6424(string)s 7021(as)s 7271(a)s 7437(v)s 6(alue;)k 8061(ho)s 6(we)k 6(v)k 3(er)k 9(,)k -480 2252(some)m 1035(may)s 1495(yield)s 2025(zero)s 2483(or)s +480 2972(some)m 1035(may)s 1495(yield)s 2025(zero)s 2483(or)s 2735(se)s 6(v)k 3(eral)k 3451(strings,)s 4189(in)s 4426(which)s 5062(case)s 5522(the)s 5864(condition)s 6819(is)s 7023(true)s 7444(if)s 7654(it)s 7840(is)s 8044(true)s -8465(of)s 8729(an)s 3(y)k 480 2012(of)m 751(the)s +8465(of)s 8729(an)s 3(y)k 480 2732(of)m 751(the)s 1099(strings)s 1787(indi)s 6(vidually)k 15(.)k 3026(P)s 3(arameters)k 4134(are)s 4481(described)s 5455(belo)s 6(w)k 15(.)k -480 1604(The)m 908(conditions)s 1956(are:)s gsave -600 1418 translate +6183(The)s 6611(conditions)s 7659(are:)s gsave +600 2545 translate 0.6953 1.0000 scale 240 fnt31 0 -52(glob)m gsave @@ -3269,65 +3276,25 @@ grestore gsave 2284 0 translate 1.4219 1.0000 scale -240 fnt83 0 -52(glob-pattern)m +240 fnt83 0 -52(glob\211pattern)m grestore -4120(\202)s +4178(\202)s grestore -960 1124(The)m 1388(v)s 6(alue)k 1956(of)s +960 2251(The)m 1388(v)s 6(alue)k 1956(of)s 2227(the)s 2575(parameter)s 3589(whose)s 4257(name)s 4831(is)s 5041(gi)s 6(v)k 3(en)k 5621(matches)s 6455(one)s -6857(of)s 7128(the)s 7476(glob)s 7955(patterns)s 960 884(\(anchored)m +6857(of)s 7128(the)s 7476(glob)s 7955(patterns)s 960 2011(\(anchored)m 1974(at)s 2206(both)s 2689(ends;)s 3240(backslashes)s 4420(can)s 4809(be)s 5091(used)s 5588(to)s 5827(escape)s 6520(metacharacters\).)s -0 52(0.61.4)m 4809(User)s 5320(service)s 6052(daemon)s 6867(and)s -7271(client)s 7861(speci\207cation)s -grestore - -grestore - -pgsave restore -showpage - -%%Page: 13 13 -%%BeginPageSetup -%%PageResources: font Times-Roman -%%+ font Times-Bold -%%+ font Courier-Bold -%%+ font Times-Italic -/pgsave save def -0.0500 dup scale 10 setlinewidth -%%EndPageSetup -gsave -0 0 translate -240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic -gsave -LoutPageSet -grestore -gsave -0 16840 translate -0.0000 rotate - -grestore - -grestore -gsave -0 16840 translate -0.0000 rotate -gsave -1417 -15423 translate -240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic gsave -1 LoutMargSet -grestore -240 fnt84 8833 13842(13)m gsave -600 13310 translate +600 1825 translate 0.6953 1.0000 scale 240 fnt31 0 -52(range)m gsave 864 0 translate 1.4219 1.0000 scale -240 fnt83 -0 -52(par)m 3(ameter)k +240 fnt83 0 -52(par)m 3(ameter)k + grestore gsave 2428 0 translate @@ -3337,19 +3304,18 @@ grestore gsave 3073 0 translate 1.4219 1.0000 scale -240 fnt83 -0 -52(max)m +240 fnt83 0 -52(max)m grestore grestore -240 fnt82 960 13016(The)m 1380(v)s 6(alue)k -1940(of)s 2203(the)s 2543(parameter)s 3548(is)s 3750(a)s -3908(nonne)s 3(g)k 1(ati)k 6(v)k 3(e)k +960 1531(The)m +1380(v)s 6(alue)k 1940(of)s 2203(the)s 2543(parameter)s +3548(is)s 3750(a)s 3908(nonne)s 3(g)k 1(ati)k 6(v)k 3(e)k 5113(inte)s 3(ger)k 5825(and)s 6220(lies)s 6594(within)s -7254(the)s 7594(range)s 8172(speci\207ed.)s 240 fnt83 960 12778(min)m -240 fnt82 1373 12776(or)m 240 fnt83 1632 12778(max)m 240 fnt82 -2091 12776(may)m 2557(be)s gsave -2839 12830 translate +7254(the)s 7594(range)s 8172(speci\207ed.)s 240 fnt83 960 1293(min)m +240 fnt82 1373 1291(or)m 240 fnt83 1632 1293(max)m 240 fnt82 +2091 1291(may)m 2557(be)s gsave +2839 1345 translate 0.6953 1.0000 scale 240 fnt31 0 -52($)m grestore @@ -3357,7 +3323,7 @@ grestore 3238(indicate)s 4050(no)s 4343(lo)s 6(wer)k 4941(or)s 5200(upper)s 5805(limit,)s 6362(respecti)s 6(v)k 3(ely)k 15(.)k gsave -600 12589 translate +600 1104 translate 0.6953 1.0000 scale 240 fnt31 0 -52(grep)m gsave 720 0 translate @@ -3372,44 +3338,84 @@ gsave grestore grestore -960 12295(The)m 240 fnt83 1388 12297(\207lename)m -240 fnt82 2252 12295(refers)m 2845(to)s 3084(a)s 3250(\207le)s +960 810(The)m 240 fnt83 1388 812(\207lename)m +240 fnt82 2252 810(refers)m 2845(to)s 3084(a)s 3250(\207le)s 3611(one)s 4013(of)s 4284(whose)s 4952(lines)s 5454(is)s 5664(the)s 6012(v)s 6(alue)k 6580(of)s 6851(the)s -7199(parameter)s 8213(\(leading)s 960 12055(or)m 1211(trailing)s 1944(whitespace)s -3053(on)s 3341(each)s 3827(line)s 4232(and)s 4627(empty)s -5270(lines)s 5764(in)s 5998(the)s 6337(\207le)s 6689(are)s -7027(ignored\).)s 7932(It)s 8128(is)s 8329(an)s 8603(error)s -960 11815(for)m 1298(the)s 1646(\207le)s 2007(not)s 2373(to)s -2612(be)s 2894(opened)s 3644(and)s 4048(read.)s gsave -600 11628 translate +7199(parameter)s 8213(\(leading)s 0 52(1.0.1)m 4809(User)s 5320(service)s +6052(daemon)s 6867(and)s 7271(client)s 7861(speci\207cation)s +grestore + +grestore + +pgsave restore +showpage + +%%Page: 13 13 +%%BeginPageSetup +%%PageResources: font Times-Roman +%%+ font Times-Bold +%%+ font Courier-Bold +%%+ font Times-Italic +/pgsave save def +0.0500 dup scale 10 setlinewidth +%%EndPageSetup +gsave +0 0 translate +240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic +gsave +LoutPageSet +grestore +gsave +0 16840 translate +0.0000 rotate + +grestore + +grestore +gsave +0 16840 translate +0.0000 rotate +gsave +1417 -15423 translate +240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic +gsave +1 LoutMargSet +grestore +240 fnt84 8833 13842(13)m 240 fnt82 960 13251(or)m 1211(trailing)s +1944(whitespace)s 3053(on)s 3341(each)s 3827(line)s 4232(and)s +4627(empty)s 5270(lines)s 5764(in)s 5998(the)s 6337(\207le)s +6689(are)s 7027(ignored\).)s 7932(It)s 8128(is)s 8329(an)s +8603(error)s 960 13011(for)m 1298(the)s 1646(\207le)s 2007(not)s +2373(to)s 2612(be)s 2894(opened)s 3644(and)s 4048(read.)s +gsave +600 12824 translate 0.6953 1.0000 scale -240 fnt31 -0 -52(!)m gsave +240 fnt31 0 -52(!)m gsave 288 0 translate 1.4219 1.0000 scale 240 fnt83 0 -52(condition)m grestore grestore -960 11334(The)m 240 fnt83 -1388 11336(condition)m 240 fnt82 2346 11334(is)m 240 fnt83 2556 11336(not)m -240 fnt82 2926 11334(true.)m 600 11094(Conjunctions:)m gsave -1983 11148 translate +960 12530(The)m +240 fnt83 1388 12532(condition)m 240 fnt82 2346 12530(is)m 240 fnt83 +2556 12532(not)m 240 fnt82 2926 12530(true.)m 600 12290(Conjunctions:)m gsave +1983 12344 translate 0.6953 1.0000 scale -240 fnt31 0 -52(&)m - +240 fnt31 +0 -52(&)m grestore 2143(and)s gsave -2547 11148 translate +2547 12344 translate 0.6953 1.0000 scale 240 fnt31 0 -52(|)m grestore gsave -1440 10901 translate +1440 11864 translate 0.6953 1.0000 scale -240 fnt31 0 -52(\()m -gsave +240 fnt31 +0 -52(\()m gsave 288 0 translate 1.4219 1.0000 scale 240 fnt83 0 -52(condition)m @@ -3417,113 +3423,113 @@ grestore 0 -292(&)m gsave 288 -240 translate 1.4219 1.0000 scale -240 fnt83 0 -52(condition)m - +240 fnt83 +0 -52(condition)m grestore 0 -532(&)m gsave 288 -480 translate 1.4219 1.0000 scale 240 fnt83 0 -52(condition)m grestore -0 -772(\202)m 0 -1012(\))m - +0 -772(\202)m +0 -1012(\))m grestore -960 9635(is)m 1170(true)s 1597(if)s 1814(all)s 2107(the)s -2455(listed)s 3030(conditions)s 4078(are)s 4425(true;)s 4908(where)s -gsave -5548 9689 translate +960 10598(is)m 1170(true)s 1597(if)s 1814(all)s +2107(the)s 2455(listed)s 3030(conditions)s 4078(are)s 4425(true;)s +4908(where)s gsave +5548 10652 translate 0.6953 1.0000 scale 240 fnt31 0 -52(|)m grestore -5708(is)s 5918(used)s 6415(it)s -6607(is)s 6817(true)s 7244(if)s 7461(an)s 3(y)k -7858(of)s 8129(them)s 8667(is)s 960 9390(true.)m 1428(Ne)s 6(wlines)k +5708(is)s 5918(used)s +6415(it)s 6607(is)s 6817(true)s 7244(if)s 7461(an)s 3(y)k +7858(of)s 8129(them)s 8667(is)s 960 10353(true.)m 1428(Ne)s 6(wlines)k 2368(must)s 2885(be)s 3159(used)s 3648(to)s 3879(separate)s 4709(one)s 5104(condition)s 6057(from)s 6573(the)s 6913(ne)s 3(xt,)k 7421(as)s 7663(sho)s 6(wn,)k 8382(and)s 8778(the)s -960 9150(parentheses)m 2126(are)s 2473(mandatory)s 15(.)k 3585(These)s +960 10113(parentheses)m 2126(are)s 2473(mandatory)s 15(.)k 3585(These)s 4212(conjunctions)s 5486(do)s 5779(not)s 6145(do)s 6438(lazy)s -6890(e)s 6(v)k 6(aluation.)k 480 8588(The)m 908(parameters)s +6890(e)s 6(v)k 6(aluation.)k 480 9850(The)m 908(parameters)s 2006(are:)s gsave -600 8402 translate +600 9664 translate 0.6953 1.0000 scale 240 fnt31 0 -52(service)m grestore -960 8108(The)m 1388(service)s +960 9370(The)m 1388(service)s 2120(name)s 2694(speci\207ed)s 3602(when)s 4178(the)s 4526(client)s 5116(w)s 2(as)k 5537(called.)s gsave -600 7922 translate +600 9184 translate 0.6953 1.0000 scale 240 fnt31 0 -52(calling\211user)m grestore -960 7628(T)m 19(w)k 2(o)k 1431(strings:)s 2174(the)s +960 8890(T)m 19(w)k 2(o)k 1431(strings:)s 2174(the)s 2522(login)s 3071(name)s 3645(of)s 3916(the)s 4264(calling)s 4967(user)s 5425(\(determined)s 6637(as)s 6887(for)s gsave -7225 7682 translate +7225 8944 translate 0.6953 1.0000 scale 240 fnt31 0 -52(USERV_USER)m grestore 8226(,)s 8333(abo)s 3(v)k 3(e\))k -960 7388(and)m 1364(the)s 1712(calling)s 2415(uid)s 2779(\(represented)s +960 8650(and)m 1364(the)s 1712(calling)s 2415(uid)s 2779(\(represented)s 4017(in)s 4260(decimal\).)s gsave -600 7202 translate +600 8464 translate 0.6953 1.0000 scale 240 fnt31 0 -52(calling\211group)m grestore -960 6908(Se)m 6(v)k 3(eral)k +960 8170(Se)m 6(v)k 3(eral)k 1722(strings:)s 2465(the)s 2813(primary)s 3623(and)s 4027(supplementary)s 5489(group)s 6101(names)s 6763(and)s 7167(gids)s 7617(\(in)s -7939(decimal\))s 960 6668(of)m 1231(the)s 1579(calling)s 2282(process.)s +7939(decimal\))s 960 7930(of)m 1231(the)s 1579(calling)s 2282(process.)s 3103(All)s 3463(the)s 3811(group)s 4423(names)s 5085(come)s 5659(\207rst,)s 6137(and)s 6541(then)s 7010(the)s 7358(gids.)s -7861(If)s 8091(the)s 8439(\207rst)s 960 6428(supplementary)m 2422(group)s +7861(If)s 8091(the)s 8439(\207rst)s 960 7690(supplementary)m 2422(group)s 3034(is)s 3244(the)s 3592(same)s 4139(as)s 4389(the)s 4737(primary)s 5547(group)s 6159(then)s 6628(it)s 6820(is)s 7030(elided.)s gsave -600 6242 translate +600 7504 translate 0.6953 1.0000 scale 240 fnt31 0 -52(calling\211user\211shell)m grestore -960 5948(The)m 1388(calling)s +960 7210(The)m 1388(calling)s 2091(user')s 13(s)k 2699(shell,)s 3257(as)s 3507(listed)s 4082(in)s 4325(the)s 4673(passw)s 2(ord)k 5633(entry)s 6178(for)s 6516(the)s 6864(calling)s 7567(login)s 8116(name)s -8690(\(as)s 960 5708(determined)m 2093(for)s gsave -2431 5762 translate +8690(\(as)s 960 6970(determined)m 2093(for)s gsave +2431 7024 translate 0.6953 1.0000 scale 240 fnt31 0 -52(USERV_USER)m grestore 3432(,)s 3539(abo)s 3(v)k 3(e\).)k gsave -600 5522 translate +600 6784 translate 0.6953 1.0000 scale 240 fnt31 0 -52(service\211user)m grestore -960 5228(T)m 19(w)k 2(o)k 1431(strings:)s +960 6490(T)m 19(w)k 2(o)k 1431(strings:)s 2174(the)s 2522(name)s 3096(of)s 3367(the)s 3715(service)s 4447(user)s 4905(\(as)s 5234(speci\207ed)s 6142(to)s 6381(the)s -6729(client\))s 7387(and)s 7791(their)s 8288(uid)s 960 4988(\(represented)m +6729(client\))s 7387(and)s 7791(their)s 8288(uid)s 960 6250(\(represented)m 2198(in)s 2441(decimal\).)s gsave -600 4802 translate +600 6064 translate 0.6953 1.0000 scale 240 fnt31 0 -52(service\211group)m grestore -960 4508(Se)m 6(v)k 3(eral)k +960 5770(Se)m 6(v)k 3(eral)k 1722(strings:)s 2465(the)s 2813(primary)s 3623(and)s 4027(supplementary)s 5489(group)s 6101(names)s 6763(and)s 7167(gids)s 7617(\(in)s -7939(decimal\))s 8823(of)s 960 4268(the)m 1308(service)s 2040(user)s 13(.)k +7939(decimal\))s 8823(of)s 960 5530(the)m 1308(service)s 2040(user)s 13(.)k gsave -600 4082 translate +600 5344 translate 0.6953 1.0000 scale 240 fnt31 0 -52(service\211user\211shell)m grestore -960 3788(The)m 1388(service)s 2120(user')s 13(s)k +960 5050(The)m 1388(service)s 2120(user')s 13(s)k 2728(shell,)s 3286(as)s 3536(listed)s 4111(in)s 4354(their)s 4851(passw)s 2(ord)k 5811(entry)s 15(.)k gsave -600 3602 translate +600 4864 translate 0.6953 1.0000 scale 240 fnt31 0 -52(u\211)m gsave @@ -3533,240 +3539,239 @@ grestore grestore grestore -960 3308(The)m 1388(v)s 6(alue)k +960 4570(The)m 1388(v)s 6(alue)k 1956(of)s 2227(the)s 2575(user)s 4(-de\207ned)k 3811(v)s 6(ariable)k -240 fnt83 4630 3310(name)m 240 fnt82 5202 3308(passed)m 5898(by)s +240 fnt83 4630 4572(name)m 240 fnt82 5202 4570(passed)m 5898(by)s 6192(the)s 6540(caller)s 7129(using)s 7701(the)s gsave -8049 3362 translate +8049 4624 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211\211defvar)m grestore -960 3068(command-line)m 2397(option)s 3066(to)s 3305(the)s +960 4330(command-line)m 2397(option)s 3066(to)s 3305(the)s 3653(client.)s 4287(If)s 4517(the)s 4865(v)s 6(ariable)k 5684(w)s 2(as)k 6105(not)s 6471(de\207ned)s 7234(then)s -7703(this)s 8099(parameter)s 960 2828(is)m 1170(an)s 1453(empty)s +7703(this)s 8099(parameter)s 960 4090(is)m 1170(an)s 1453(empty)s 2105(list)s 2456(of)s 2727(strings;)s 3476(in)s 3719(this)s 4115(case)s 4582(an)s 3(y)k 4979(condition)s 5940(which)s 6582(tests)s 7057(it)s 7249(will)s 7675(be)s 7957(f)s 2(alse,)k 8512(and)s gsave -960 2642 translate +960 3904 translate 0.6953 1.0000 scale 240 fnt31 0 -52(include\211lookup)m grestore -2421 2588(on)m 2718(it)s +2421 3850(on)m 2718(it)s 2910(will)s 3336(read)s 3805(the)s gsave -4153 2642 translate +4153 3904 translate 0.6953 1.0000 scale 240 fnt31 0 -52(:none)m grestore 4713(\207le,)s 5125(or)s gsave -5384 2642 translate +5384 3904 translate 0.6953 1.0000 scale 240 fnt31 0 -52(:default)m grestore 6245(if)s gsave -6462 2642 translate +6462 3904 translate 0.6953 1.0000 scale 240 fnt31 0 -52(:none)m grestore 7022(is)s 7232(not)s 7598(found.)s gsave -120 2219 translate +120 3481 translate 0.6953 1.0000 scale 240 fnt31 0 -52(errors\211push)m grestore -240 fnt83 1281 2167(\207lename)m gsave -120 1979 translate +240 fnt83 1281 3429(\207lename)m gsave +120 3241 translate 0.6953 1.0000 scale 240 fnt31 0 -52(srorre)m grestore -240 fnt82 480 1685(Stacks)m 1155(the)s 1503(error)s +240 fnt82 480 2947(Stacks)m 1155(the)s 1503(error)s 2026(handling)s 2917(beha)s 4(viour)k 3930(currently)s 4846(in)s 5089(ef)s 6(fect.)k 5729(An)s 3(y)k 6193(changes)s -7015(to)s 7254(error)s 7777(handling)s 8668(will)s 480 1445(tak)m 2(e)k +7015(to)s 7254(error)s 7777(handling)s 8668(will)s 480 2707(tak)m 2(e)k 932(ef)s 6(fect)k 1528(only)s 2008(between)s gsave -2862 1499 translate +2862 2761 translate 0.6953 1.0000 scale 240 fnt31 0 -52(errors\211push)m grestore 4023(and)s gsave -4427 1499 translate +4427 2761 translate 0.6953 1.0000 scale 240 fnt31 0 -52(srorre)m grestore 5027(.)s gsave -120 1105 translate +120 2367 translate 0.6953 1.0000 scale 240 fnt31 0 -52(catch\211quit)m grestore gsave -120 865 translate +120 2127 translate 0.6953 1.0000 scale 240 fnt31 0 -52(hctac)m grestore -0 52(User)m -511(service)s 1243(daemon)s 2058(and)s 2462(client)s 3052(speci\207cation)s -8472(0.61.4)s -grestore - -grestore - -pgsave restore -showpage - -%%Page: 14 14 -%%BeginPageSetup -%%PageResources: font Times-Roman -%%+ font Times-Bold -%%+ font Courier-Bold -%%+ font Times-Italic -/pgsave save def -0.0500 dup scale 10 setlinewidth -%%EndPageSetup -gsave -0 0 translate -240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic -gsave -LoutPageSet -grestore -gsave -0 16840 translate -0.0000 rotate - -grestore - -grestore -gsave -0 16840 translate -0.0000 rotate -gsave -1417 -15423 translate -240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic -gsave -0 LoutMargSet -grestore -240 fnt84 0 13842(14)m 240 fnt82 480 13254(An)m 3(y)k +480 1833(An)m 3(y)k 935(use)s 1301(of)s gsave -1563 13308 translate +1563 1887 translate 0.6953 1.0000 scale 240 fnt31 0 -52(quit)m grestore 2013(inside)s gsave -2631 13308 translate +2631 1887 translate 0.6953 1.0000 scale 240 fnt31 0 -52(catch\211quit)m grestore 3683(will)s 4100(merely)s 4807(cause)s 5385(the)s 5724(parsing)s 6472(to)s 6701(continue)s 7572(at)s gsave -7795 13308 translate +7795 1887 translate 0.6953 1.0000 scale 240 fnt31 0 -52(hctac)m grestore -8345(instead.)s 480 13014(An)m 3(y)k +8345(instead.)s 480 1593(An)m 3(y)k 944(control)s 1676(constructs)s 2696(started)s 3390(since)s 3937(the)s gsave -4285 13068 translate +4285 1647 translate 0.6953 1.0000 scale 240 fnt31 0 -52(catch\211quit)m grestore 5346(will)s 5772(be)s 6054(considered)s 7148(\207nished)s 7964(if)s 8181(a)s gsave -8347 13068 translate +8347 1647 translate 0.6953 1.0000 scale 240 fnt31 0 -52(quit)m grestore -480 12774(is)m 690(found.)s 480 12366(If)m 710(an)s 993(error)s -1516(occurs)s 2191(inside)s gsave -2818 12420 translate +8807(is)s 480 1353(found.)m 1203(If)s 1433(an)s 1716(error)s +2239(occurs)s 2914(inside)s gsave +3541 1407 translate 0.6953 1.0000 scale 240 fnt31 0 -52(catch\211quit)m grestore -3879(the)s -4227(e)s 3(x)k 3(ecution)k 5208(settings)s 5989(will)s -6415(be)s 6697(reset)s 7207(\(as)s 7536(if)s 7753(by)s -8047(the)s gsave -8395 12420 translate +4602(the)s +4950(e)s 3(x)k 3(ecution)k 5931(settings)s 6712(will)s +7138(be)s 7420(reset)s 7930(\(as)s 8259(if)s 8476(by)s +8770(the)s gsave +480 1167 translate 0.6953 1.0000 scale 240 fnt31 0 -52(reset)m grestore -480 12126(directi)m 6(v)k 3(e\))k -1434(and)s 1838(parsing)s 2595(will)s 3021(lik)s 2(e)k 6(wise)k -3865(continue)s 4745(at)s gsave -4977 12180 translate +1040 1113(directi)m 6(v)k 3(e\))k +1994(and)s 2398(parsing)s 3155(will)s 3581(lik)s 2(e)k 6(wise)k +4425(continue)s 5305(at)s gsave +5537 1167 translate 0.6953 1.0000 scale 240 fnt31 0 -52(hctac)m grestore -5477(.)s -480 11718(If)m 705(a)s 865(le)s 3(xical)k 1548(or)s -1801(syntax)s 2476(error)s 2993(is)s 3198(detected)s 4046(in)s -4283(the)s 4626(same)s 5167(con\207guration)s 6495(\207le)s 6850(as)s -7095(the)s gsave -7437 11772 translate +6037(.)s +6201(If)s 6431(a)s 6597(le)s 3(xical)k 7285(or)s +7544(syntax)s 8224(error)s 8747(is)s 480 873(detected)m 1334(in)s +1577(the)s 1925(same)s 2472(con\207guration)s 3805(\207le)s 4166(as)s +4416(the)s gsave +4764 927 translate 0.6953 1.0000 scale 240 fnt31 0 -52(catch\211quit)m grestore -8438(,)s 8539(while)s -480 11478(looking)m 1265(for)s 1603(the)s gsave -1951 11532 translate +5765(,)s 5872(while)s +6459(looking)s 7244(for)s 7582(the)s gsave +7930 927 translate 0.6953 1.0000 scale 240 fnt31 0 -52(hctac)m grestore -2511(after)s 3007(an)s 3290(error)s 3813(or)s gsave -4072 11532 translate +8490(after)s 0 52(User)m 511(service)s 1243(daemon)s 2058(and)s +2462(client)s 3052(speci\207cation)s 8611(1.0.1)s +grestore + +grestore + +pgsave restore +showpage + +%%Page: 14 14 +%%BeginPageSetup +%%PageResources: font Times-Roman +%%+ font Times-Bold +%%+ font Courier-Bold +%%+ font Times-Italic +/pgsave save def +0.0500 dup scale 10 setlinewidth +%%EndPageSetup +gsave +0 0 translate +240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic +gsave +LoutPageSet +grestore +gsave +0 16840 translate +0.0000 rotate + +grestore + +grestore +gsave +0 16840 translate +0.0000 rotate +gsave +1417 -15423 translate +240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic +gsave +0 LoutMargSet +grestore +240 fnt84 0 13842(14)m 240 fnt82 480 13254(an)m 763(error)s +1286(or)s gsave +1545 13308 translate 0.6953 1.0000 scale -240 fnt31 -0 -52(quit)m +240 fnt31 0 -52(quit)m grestore -4472(,)s 4579(that)s 4997(ne)s 6(w)k -5444(error)s 5967(will)s 6393(not)s 6759(be)s 7041(caught.)s -300 fnt84 0 10811(4.2.4.)m 813(Dir)s 5(ecti)k 3(v)k 3(es)k +1945(,)s 2052(that)s +2470(ne)s 6(w)k 2917(error)s 3440(will)s 3866(not)s +4232(be)s 4514(caught.)s 300 fnt84 0 12587(4.2.4.)m 813(Dir)s 5(ecti)k 3(v)k 3(es)k 2148(f)s 7(or)k 2595(changing)s 3829(execution)s 5112(settings)s -240 fnt82 0 10240(The)m 419(follo)s 6(wing)k 1386(directi)s 6(v)k 3(es)k +240 fnt82 0 12016(The)m 419(follo)s 6(wing)k 1386(directi)s 6(v)k 3(es)k 2346(modify)s 3082(the)s 3420(e)s 3(x)k 3(ecution)k 4391(settings;)s 5223(the)s 5562(serv)s 3(er)k 6192(will)s 6608(remember)s 7627(the)s 7965(f)s 2(act)k 8370(that)s -8778(the)s 0 9999(directi)m 6(v)k 3(e)k 881(w)s 2(as)k +8778(the)s 0 11775(directi)m 6(v)k 3(e)k 881(w)s 2(as)k 1300(encountered)s 2525(and)s 2927(act)s 3263(on)s 3559(it)s 3749(only)s 4227(after)s 4721(all)s 5012(the)s 5359(con\207guration)s 6690(has)s 7058(been)s 7565(parsed.)s 8291(The)s 240 fnt83 -8717 10001(last)m 240 fnt82 0 9759(directi)m 6(v)k 3(e)k +8717 11777(last)m 240 fnt82 0 11535(directi)m 6(v)k 3(e)k 882(which)s 1524(modi\207es)s 2399(an)s 3(y)k 2796(particuar)s 3704(setting)s 4394(will)s 4820(tak)s 2(e)k 5272(ef)s 6(fect.)k gsave -120 9405 translate +120 11181 translate 0.6953 1.0000 scale 240 fnt31 0 -52(reject)m grestore -480 9111(Reject)m 1150(the)s 1498(request.)s +480 10887(Reject)m 1150(the)s 1498(request.)s gsave -2292 9165 translate +2292 10941 translate 0.6953 1.0000 scale 240 fnt31 0 -52(execute)m grestore 2992(,)s gsave -3099 9165 translate +3099 10941 translate 0.6953 1.0000 scale 240 fnt31 0 -52(execute\211from\211directory)m grestore 5361(and)s gsave -5765 9165 translate +5765 10941 translate 0.6953 1.0000 scale 240 fnt31 0 -52(execute\211from\211path)m grestore 7527(will)s 7953(change)s -480 8871(this)m 876(setting.)s gsave -120 8531 translate +480 10647(this)m 876(setting.)s gsave +120 10307 translate 0.6953 1.0000 scale 240 fnt31 0 -52(execute)m gsave 1152 0 translate @@ -3782,13 +3787,13 @@ gsave grestore 4048(\202])s grestore -480 8237(Ex)m 3(ecute)k -1300(the)s 1645(program)s 240 fnt83 2512 8239(pr)m 10(o)k 2(gr)k 3(am)k -240 fnt82 3332 8237(,)m 3436(with)s 3915(the)s 4259(ar)s 4(guments)k +480 10013(Ex)m 3(ecute)k +1300(the)s 1645(program)s 240 fnt83 2512 10015(pr)m 10(o)k 2(gr)k 3(am)k +240 fnt82 3332 10013(,)m 3436(with)s 3915(the)s 4259(ar)s 4(guments)k 5299(as)s 5546(speci\207ed,)s 6500(follo)s 6(wed)k 7399(by)s -7690(an)s 3(y)k 8083(ar)s 4(guments)k 480 7997(gi)m 6(v)k 3(en)k +7690(an)s 3(y)k 8083(ar)s 4(guments)k 480 9773(gi)m 6(v)k 3(en)k 1052(to)s 1282(the)s 1621(client)s 2203(if)s gsave -2411 8051 translate +2411 9827 translate 0.6953 1.0000 scale 240 fnt31 0 -52(no\211suppress\211args)m @@ -3796,15 +3801,15 @@ grestore 4064(is)s 4266(in)s 4500(ef)s 6(fect.)k 5131(It)s 5328(is)s 5529(an)s 5803(error)s 6318(for)s 6647(the)s 6986(e)s 3(x)k 3(ecution)k 7959(to)s -8189(f)s 2(ail)k 8550(when)s 480 7757(it)m 672(is)s +8189(f)s 2(ail)k 8550(when)s 480 9533(it)m 672(is)s 882(attempted)s 1882(\(after)s 2457(all)s 2750(the)s 3098(con\207guration)s 4431(has)s 4801(been)s 5310(parsed\).)s 6117(If)s 240 fnt83 -6347 7759(pr)m 10(o)k 2(gr)k 3(am)k 240 fnt82 -7227 7757(does)m 7717(not)s 8083(contain)s 8844(a)s 480 7517(slash)m +6347 9535(pr)m 10(o)k 2(gr)k 3(am)k 240 fnt82 +7227 9533(does)m 7717(not)s 8083(contain)s 8844(a)s 480 9293(slash)m 1015(it)s 1207(will)s 1633(be)s 1915(searched)s 2809(for)s 3147(on)s 3444(the)s 3792(service)s 4524(user')s 13(s)k 5132(path.)s gsave -120 7177 translate +120 8953 translate 0.6953 1.0000 scale 240 fnt31 0 -52(execute\211from\211directory)m gsave 3312 0 translate @@ -3820,117 +3825,172 @@ grestore 6376(\202])s grestore -480 6883(T)m 19(ak)k 2(e)k 993(all)s 1286(the)s +480 8659(T)m 19(ak)k 2(e)k 993(all)s 1286(the)s 1634(characters)s 2652(after)s 3148(the)s 3496(last)s 3887(slash)s 4422(of)s 4693(the)s 5041(service)s 5773(name)s 6347(speci\207ed)s -7255(when)s 7831(the)s 8179(client)s 480 6642(w)m 2(as)k +7255(when)s 7831(the)s 8179(client)s 480 8418(w)m 2(as)k 901(called,)s 1578(and)s 1982(e)s 3(x)k 3(ecute)k 2762(that)s 3180(program)s 4050(in)s 4293(the)s 4641(directory)s -5557(named)s 6253(by)s 240 fnt83 6547 6644(pathname)m 240 fnt82 -7545 6642(as)m 7795(if)s 8012(it)s 8204(had)s 8608(been)s -480 6402(speci\207ed)m 1388(for)s 240 fnt83 1726 6404(e)m 4(xecute)k -240 fnt82 2431 6402(.)m 2535(The)s 2963(part)s 3394(of)s +5557(named)s 6253(by)s 240 fnt83 6547 8420(pathname)m 240 fnt82 +7545 8418(as)m 7795(if)s 8012(it)s 8204(had)s 8608(been)s +480 8178(speci\207ed)m 1388(for)s 240 fnt83 1726 8180(e)m 4(xecute)k +240 fnt82 2431 8178(.)m 2535(The)s 2963(part)s 3394(of)s 3665(the)s 4013(service)s 4745(name)s 5319(used)s 5816(may)s -6282(contain)s 7043(only)s 7523(alphanumerics)s 480 6162(and)m 884(h)s 1(yphens)k +6282(contain)s 7043(only)s 7523(alphanumerics)s 480 7938(and)m 884(h)s 1(yphens)k 1732(and)s 2136(must)s 2660(start)s 3130(with)s 3611(an)s 3894(alphanumeric)s 5247(\(and)s 5730(it)s 5921(must)s 6446(be)s -6727(non-empty\),)s 7950(otherwise)s 8934(it)s 480 5922(is)m 690(an)s -973(error)s 13(.)k 480 5514(This)m 956(directi)s 6(v)k 3(e)k -1838(is)s 2048(ignored)s 2837(if)s 3054(the)s 3402(rele)s 6(v)k 6(ant)k -4219(program)s 5089(does)s 5579(not)s 5945(e)s 3(xist)k -6453(in)s 6696(the)s 7044(directory)s 7960(speci\207ed;)s 480 5274(in)m -723(this)s 1119(case)s 1586(the)s 1934(program)s 2804(to)s -3043(e)s 3(x)k 3(ecute)k 3823(is)s 4033(left)s -4410(at)s 4642(its)s 4918(pre)s 6(vious)k 5787(setting)s -6477(\(or)s 6815(unset,)s 7427(if)s 7644(it)s 7836(w)s 2(as)k -8257(not)s 480 5034(set)m 805(before\).)s 480 4626(It)m 672(is)s -869(an)s 1139(error)s 1649(for)s 1974(the)s 2309(test)s -2687(for)s 3012(the)s 3347(e)s 3(xistence)k 4276(of)s -4533(the)s 4868(program)s 5725(to)s 5951(f)s 2(ail)k -6308(other)s 6846(than)s 7302(with)s 7771(a)s 7924(`no)s -8283(such)s 8765(\207le)s 480 4386(or)m 729(directory')s 1693(indication.)s -2743(It)s 2938(is)s 3138(also)s 3566(an)s 3839(error)s -4352(for)s 4680(the)s 5018(e)s 3(x)k 3(ecution)k -5989(to)s 6218(f)s 2(ail)k 6578(if)s 6785(and)s -7179(when)s 7745(it)s 7927(is)s 8126(attempted)s 480 4146(\(after)m -1055(all)s 1348(the)s 1696(con\207guration)s 3029(has)s 3399(been)s -3908(parsed\).)s gsave -120 3806 translate +6727(non-empty\),)s 7950(otherwise)s 8934(it)s 480 7698(is)m 690(an)s +973(error)s 13(.)k 1587(This)s 2063(directi)s 6(v)k 3(e)k +2945(is)s 3155(ignored)s 3944(if)s 4161(the)s 4509(rele)s 6(v)k 6(ant)k +5326(program)s 6196(does)s 6686(not)s 7052(e)s 3(xist)k +7560(in)s 7803(the)s 8151(directory)s 480 7458(speci\207ed;)m 1437(in)s +1675(this)s 2066(case)s 2528(the)s 2871(program)s 3735(to)s +3969(e)s 3(x)k 3(ecute)k 4744(is)s 4949(left)s +5321(at)s 5548(its)s 5818(pre)s 6(vious)k 6682(setting)s +7367(\(or)s 7700(unset,)s 8307(if)s 8519(it)s 8705(w)s 2(as)k +480 7218(not)m 846(set)s 1171(before\).)s 2024(It)s 2229(is)s +2439(an)s 2722(error)s 3245(for)s 3583(the)s 3931(test)s +4322(for)s 4660(the)s 5008(e)s 3(xistence)k 5950(of)s +6221(the)s 6569(program)s 7439(to)s 7678(f)s 2(ail)k +8048(other)s 8599(than)s 480 6978(with)m 958(a)s 1120(`no)s +1488(such)s 1980(\207le)s 2336(or)s 2591(directory')s 3561(indication.)s +4617(It)s 4818(is)s 5023(also)s 5457(an)s 5736(error)s +6255(for)s 6589(the)s 6932(e)s 3(x)k 3(ecution)k +7909(to)s 8144(f)s 2(ail)k 8510(if)s 8722(and)s +480 6738(when)m 1056(it)s 1248(is)s 1458(attempted)s 2458(\(after)s +3033(all)s 3326(the)s 3674(con\207guration)s 5007(has)s 5377(been)s +5886(parsed\).)s gsave +120 6398 translate 0.6953 1.0000 scale 240 fnt31 0 -52(execute\211from\211path)m grestore -240 fnt83 480 3514(service)m -240 fnt82 1202 3512(is)m 1404(interpreted)s 2488(as)s 2731(a)s +240 fnt83 480 6106(service)m +240 fnt82 1202 6104(is)m 1404(interpreted)s 2488(as)s 2731(a)s 2889(program)s 3751(on)s 4041(the)s 4381(def)s 2(ault)k gsave -5094 3566 translate +5094 6158 translate 0.6953 1.0000 scale 240 fnt31 0 -52(PATH)m grestore 5546(\(or)s 5877(as)s 6119(a)s 6277(pathname)s 7256(of)s 7519(an)s 7794(e)s 3(x)k 3(ecutable,)k -8909(if)s 480 3271(it)m 660(contains)s 1495(a)s gsave -1649 3325 translate +8909(if)s 480 5863(it)m 660(contains)s 1495(a)s gsave +1649 5917 translate 0.6953 1.0000 scale 240 fnt31 0 -52(/)m grestore 1749(\).)s 1919(This)s 2383(directi)s 6(v)k 3(e)k -3252(is)s 240 fnt83 3450 3273(very)m 3904(dang)s 2(er)k 10(ous)k -240 fnt82 4899 3271(,)m 4994(and)s 5385(is)s 5583(only)s +3252(is)s 240 fnt83 3450 5865(very)m 3904(dang)s 2(er)k 10(ous)k +240 fnt82 4899 5863(,)m 4994(and)s 5385(is)s 5583(only)s 6050(pro)s 3(vided)k 6944(to)s 7170(mak)s 2(e)k 7730(the)s gsave -8065 3325 translate +8065 5917 translate 0.6953 1.0000 scale 240 fnt31 0 -52(\211\211override)m grestore -480 3031(options)m 1230(ef)s 6(fecti)k 6(v)k 3(e.)k +480 5623(options)m 1230(ef)s 6(fecti)k 6(v)k 3(e.)k 2146(It)s 2344(should)s 3034(not)s 3393(normally)s 4304(be)s 4579(used.)s 5115(It)s 5313(is)s 5516(an)s 5792(error)s 6309(for)s 6640(the)s 6981(e)s 3(x)k 3(ecution)k -7955(to)s 8187(f)s 2(ail)k 8550(when)s 480 2791(it)m +7955(to)s 8187(f)s 2(ail)k 8550(when)s 480 5383(it)m 672(is)s 882(attempted)s 1882(\(after)s 2457(all)s 2750(the)s 3098(con\207guration)s 4431(has)s 4801(been)s 5310(parsed\).)s gsave -120 2451 translate +120 5043 translate 0.6953 1.0000 scale 240 fnt31 0 -52(execute\211builtin)m gsave 2304 0 translate 1.4219 1.0000 scale -240 fnt83 0 -52(service-name)m +240 fnt83 0 -52(service\211name)m grestore gsave -4249 0 translate +4307 0 translate 1.4219 1.0000 scale -240 fnt83 0 -52(service-ar)m 8(guments)k +240 fnt83 0 -52(service\211ar)m 8(guments)k grestore grestore -480 2157(Ex)m 3(ecutes)k 1388(the)s 1732(b)s 4(uiltin)k -2405(service)s 240 fnt83 3133 2159(service-name)m 240 fnt82 4400 2157(.)m +480 4749(Ex)m 3(ecutes)k 1388(the)s 1732(b)s 4(uiltin)k +2405(service)s 240 fnt83 3133 4751(service-name)m 240 fnt82 4400 4749(.)m 4500(These)s 5123(b)s 4(uiltin)k 5796(services)s 6612(display)s -7353(information)s 8534(about)s 480 1917(the)m 822(serv)s 3(er)k +7353(information)s 8534(about)s 480 4509(the)m 822(serv)s 3(er)k 1455(and/or)s 2120(the)s 2461(request,)s 3252(and)s 3649(ignore)s 4310(an)s 3(y)k 4700(ar)s 4(guments)k 5737(passed)s 6426(from)s 6944(the)s 7285(service)s 8011(side)s 8445(e)s 3(xcept)k -480 1677(possibly)m 1320(to)s 1547(print)s 2046(them)s 2572(as)s +480 4269(possibly)m 1320(to)s 1547(print)s 2046(them)s 2572(as)s 2810(part)s 3228(of)s 3487(their)s 3972(output.)s 4676(The)s 3(y)k 5207(write)s 5740(their)s 6225(results)s 6887(to)s 7114(their)s -7599(standard)s 8454(output)s 480 1437(\(i.e.,)m 958(where)s 6(v)k 3(er)k +7599(standard)s 8454(output)s 480 4029(\(i.e.,)m 958(where)s 6(v)k 3(er)k 1898(\207le)s 2259(descriptor)s 3274(1)s 3429(is)s 3639(directed\).)s 4591(The)s 5019(b)s 4(uiltin)k 5696(services)s 6516(are:)s gsave -600 1251 translate +600 3843 translate 0.6953 1.0000 scale 240 fnt31 0 -52(execute)m grestore -960 957(Displays)m 1848(the)s 2196(e)s 3(x)k 3(ecution)k +960 3549(Displays)m 1848(the)s 2196(e)s 3(x)k 3(ecution)k 3177(settings,)s 4014(de\207ned)s 4777(v)s 6(ariables,)k 5740(ar)s 4(guments,)k -6839(etc.)s 7221(with)s 7703(which)s 8345(the)s 960 717(b)m 4(uiltin)k +6839(etc.)s 7221(with)s 7703(which)s 8345(the)s 960 3309(b)m 4(uiltin)k 1637(service)s 2369(w)s 2(as)k 2790(in)s 9(v)k 4(ok)k 2(ed.)k -0 52(0.61.4)m 4809(User)s 5320(service)s 6052(daemon)s 6867(and)s -7271(client)s 7861(speci\207cation)s +gsave +600 3123 translate +0.6953 1.0000 scale +240 fnt31 0 -52(environment)m +grestore +960 2829(Dis)m 1283(plays)s 1839(the)s +2187(en)s 2410(vi)s 2590(ron)s 2906(ment)s 3444(v)s 6(ari)k +3803(able)s 4257(set)s 4522(tings)s 5038(with)s 5520(which)s +6162(the)s 6510(b)s 4(uiltin)k 7187(ser)s 7465(vice)s +7919(w)s 2(as)k 960 2589(in)m 1143(v)s 4(ok)k 2(ed.)k +gsave +600 2403 translate +0.6953 1.0000 scale +240 fnt31 0 -52(parameter)m gsave +1440 0 translate +1.4219 1.0000 scale +240 fnt83 0 -52(par)m 3(ameter)k + +grestore + +grestore +960 2109(Displays)m 1848(the)s 2196(v)s 6(alues)k 2852(of)s +3123(the)s 3471(service)s 4203(con\207guration)s 5536(language)s 6456(parameter)s +7470(speci\207ed.)s gsave +600 1923 translate +0.6953 1.0000 scale +240 fnt31 0 -52(version)m +grestore +960 1629(Displays)m 1848(the)s +2196(v)s 3(ersion)k 2954(string)s 3551(and)s 3955(compilation)s +5154(details)s 5828(of)s 6099(the)s 6447(uservd)s 7143(serv)s 3(er)k +7783(program.)s gsave +600 1443 translate +0.6953 1.0000 scale +240 fnt31 0 -52(reset)m +grestore +960 1149(Dis)m 1283(plays)s +1838(the)s 2184(de)s 2406(f)s 2(ault)k 2899(re)s +3080(set)s 3403(con)s 3746(\207g)s 3992(u)s 4107(ra)s +4292(tion)s 4719(\(e)s 6(v)k 6(al)k 5179(u)s +5294(at)s 5466(ed)s 5748(when)s gsave +6323 1203 translate +0.6953 1.0000 scale +240 fnt31 0 -52(reset)m + +grestore +6881(is)s 7089(found)s 7704(in)s 7945(a)s 8109(con)s +8452(\207g)s 8698(u)s 8813(ra)s 8998(-)s 960 909(tion)m +1389(\207le,)s 1801(or)s 2060(when)s 2636(an)s 2919(er)s +3104(ror)s 3442(is)s 3652(caught)s 4350(by)s gsave +4644 963 translate +0.6953 1.0000 scale +240 fnt31 +0 -52(catch\211quit)m +grestore +5645(\).)s 0 52(1.0.1)m 4809(User)s 5320(service)s +6052(daemon)s 6867(and)s 7271(client)s 7861(speci\207cation)s grestore grestore @@ -3970,435 +4030,349 @@ gsave 1 LoutMargSet grestore 240 fnt84 8833 13842(15)m gsave -600 13310 translate -0.6953 1.0000 scale -240 fnt31 0 -52(environment)m -grestore -240 fnt82 -960 13016(Dis)m 1283(plays)s 1839(the)s 2187(en)s 2410(vi)s -2590(ron)s 2906(ment)s 3444(v)s 6(ari)k 3803(able)s -4257(set)s 4522(tings)s 5038(with)s 5520(which)s 6162(the)s -6510(b)s 4(uiltin)k 7187(ser)s 7465(vice)s 7919(w)s 2(as)k -960 12776(in)m 1143(v)s 4(ok)k 2(ed.)k gsave -600 12590 translate -0.6953 1.0000 scale -240 fnt31 -0 -52(parameter)m gsave -1440 0 translate -1.4219 1.0000 scale -240 fnt83 0 -52(par)m 3(ameter)k -grestore - -grestore -960 12296(Displays)m -1848(the)s 2196(v)s 6(alues)k 2852(of)s 3123(the)s -3471(service)s 4203(con\207guration)s 5536(language)s 6456(parameter)s 7470(speci\207ed.)s -gsave -600 12110 translate -0.6953 1.0000 scale -240 fnt31 0 -52(version)m -grestore -960 11816(Displays)m 1848(the)s 2196(v)s 3(ersion)k -2954(string)s 3551(and)s 3955(compilation)s 5154(details)s 5828(of)s -6099(the)s 6447(uservd)s 7143(serv)s 3(er)k 7783(program.)s -gsave -600 11630 translate -0.6953 1.0000 scale -240 fnt31 0 -52(reset)m -grestore -960 11336(Dis)m 1283(plays)s 1838(the)s -2184(de)s 2406(f)s 2(ault)k 2899(re)s 3080(set)s -3403(con)s 3746(\207g)s 3992(u)s 4107(ra)s 4292(tion)s -4719(\(e)s 6(v)k 6(al)k 5179(u)s 5294(at)s -5466(ed)s 5748(when)s gsave -6323 11390 translate -0.6953 1.0000 scale -240 fnt31 0 -52(reset)m -grestore -6881(is)s -7089(found)s 7704(in)s 7945(a)s 8109(con)s 8452(\207g)s -8698(u)s 8813(ra)s 8998(-)s 960 11096(tion)m 1389(\207le,)s -1801(or)s 2060(when)s 2636(an)s 2919(er)s 3104(ror)s -3442(is)s 3652(caught)s 4350(by)s gsave -4644 11150 translate -0.6953 1.0000 scale -240 fnt31 0 -52(catch\211quit)m - -grestore -5645(\).)s gsave -600 10910 translate +600 13318 translate 0.6953 1.0000 scale 240 fnt31 0 -52(toplevel)m grestore -960 10616(Displays)m 1848(the)s -2196(top-le)s 6(v)k 3(el)k 3091(def)s 2(ault)k -3812(con\207guration)s 5145(\(the)s 5572(con\207guration)s 6905(data,)s 7410(e)s 6(v)k 6(aluated)k -8372(by)s 8666(the)s 960 10376(serv)m 3(er)k 9(,)k -1638(which)s 2280(calls)s 2768(all)s 3061(the)s 3409(other)s -3960(con\207guration)s 5293(\207les\).)s gsave -600 10190 translate +240 fnt82 +960 13024(Displays)m 1848(the)s 2196(top-le)s 6(v)k 3(el)k +3091(def)s 2(ault)k 3812(con\207guration)s 5145(\(the)s 5572(con\207guration)s +6905(data,)s 7410(e)s 6(v)k 6(aluated)k 8372(by)s +8666(the)s 960 12784(serv)m 3(er)k 9(,)k 1638(which)s +2280(calls)s 2768(all)s 3061(the)s 3409(other)s 3960(con\207guration)s +5293(\207les\).)s gsave +600 12598 translate 0.6953 1.0000 scale 240 fnt31 0 -52(override)m grestore -960 9896(Displays)m -1847(the)s 2194(top-le)s 6(v)k 3(el)k 3088(o)s 3(v)k 3(erride)k +960 12304(Displays)m 1847(the)s +2194(top-le)s 6(v)k 3(el)k 3088(o)s 3(v)k 3(erride)k 3932(con\207guration)s 5264(\(the)s 5690(con\207guration)s 7021(data,)s 7525(e)s 6(v)k 6(aluated)k -8486(by)s 8778(the)s 960 9656(serv)m 3(er)k 9(,)k +8486(by)s 8778(the)s 960 12064(serv)m 3(er)k 9(,)k 1638(which)s 2280(causes)s 2955(all)s 3248(the)s 3596(other)s 4147(con\207guration)s 5480(data)s 5938(to)s 6177(be)s 6459(parsed\).)s gsave -600 9470 translate +600 11878 translate 0.6953 1.0000 scale 240 fnt31 0 -52(help)m grestore -960 9176(Displays)m 1848(a)s 2014(list)s +960 11584(Displays)m 1848(a)s 2014(list)s 2365(of)s 2636(the)s 2984(understood)s 4106(b)s 4(uiltin)k 4783(service)s 5515(names)s 6177(and)s 6581(ar)s 4(guments.)k -480 8913(In)m 736(the)s 1084(fu)s 1278(ture)s 1705(oth)s +480 11321(In)m 736(the)s 1084(fu)s 1278(ture)s 1705(oth)s 2008(er)s 2253(b)s 4(uiltin)k 2930(ser)s 3208(vices)s 3750(may)s 4216(be)s 4498(de)s 4720(\207ned)s 5257(which)s 5899(do)s 6192(more)s 6739(than)s 7208(just)s 7613(print)s -8124(in)s 8307(for)s 8585(-)s 480 8673(ma)m 772(tion.)s +8124(in)s 8307(for)s 8585(-)s 480 11081(ma)m 772(tion.)s gsave -120 8383 translate +120 10791 translate 0.6953 1.0000 scale 240 fnt31 0 -52(set\211environment)m grestore gsave -120 8143 translate +120 10551 translate 0.6953 1.0000 scale 240 fnt31 0 -52(no\211set\211environment)m grestore -480 7849(Runs)m +480 10257(Runs)m gsave -1024 7903 translate +1024 10311 translate 0.6953 1.0000 scale 240 fnt31 0 -52(/etc/environment)m grestore 2686(to)s 2925(set)s 3250(the)s 3598(service)s 4330(user')s 13(s)k 4938(en)s 9(vironment.)k 6242(This)s 6718(adds)s 7208(the)s 7556(o)s 3(v)k 3(erhead)k -8485(of)s 480 7609(in)m 9(v)k 4(oking)k 1372(a)s +8485(of)s 480 10017(in)m 9(v)k 4(oking)k 1372(a)s 1538(shell,)s 2096(b)s 4(ut)k 2458(doesn')s 4(t)k 3218(cause)s 3805(an)s 3(y)k 4202(shell)s 4708(\(de\)mangling)s 6049(of)s 6320(the)s 6668(service')s 13(s)k 7554(ar)s 4(guments.)k -8650(This)s 480 7369(is)m 690(achie)s 6(v)k 3(ed)k +8650(This)s 480 9777(is)m 690(achie)s 6(v)k 3(ed)k 1589(by)s 1883(in)s 9(v)k 4(oking)k gsave -960 7183 translate +960 9591 translate 0.6953 1.0000 scale 240 fnt31 0 -52(.../program)m 1728(arg)s 2304(arg)s 2880(arg)s 3456(\202)s grestore -480 6938(as)m gsave -960 6752 translate +480 9346(as)m gsave +960 9160 translate 0.6953 1.0000 scale 240 fnt31 0 -52(/bin/sh)m 1152(\211c)s 1584('.)s 2016(/etc/environment;)s 4608(exec)s 5328("$@"')s 6192(\211)s 6480(.../program)s 8208(arg)s 8784(arg)s 9360(arg)s 9936(\202)s grestore gsave -480 6508 translate +480 8916 translate 0.6953 1.0000 scale 240 fnt31 0 -52(no\211set\211environment)m grestore -2342 6454(cancels)m 3096(the)s 3444(ef)s 6(fect)k +2342 8862(cancels)m 3096(the)s 3444(ef)s 6(fect)k 4040(of)s gsave -4311 6508 translate +4311 8916 translate 0.6953 1.0000 scale 240 fnt31 0 -52(set\211environment)m grestore 5812(.)s gsave -120 6164 translate +120 8572 translate 0.6953 1.0000 scale 240 fnt31 0 -52(no\211suppress\211args)m grestore gsave -120 5924 translate +120 8332 translate 0.6953 1.0000 scale 240 fnt31 0 -52(suppress\211args)m grestore -480 5630(Include)m 1253(an)s 3(y)k +480 8038(Include)m 1253(an)s 3(y)k 1650(ar)s 4(guments)k 2693(gi)s 6(v)k 3(en)k 3273(to)s 3512(the)s 3860(client)s 4450(as)s 4700(ar)s 4(guments)k 5743(to)s 5982(the)s 6330(program)s 7200(in)s 9(v)k 4(ok)k 2(ed)k -8015(as)s 8265(a)s 8431(result)s 480 5390(of)m 749(an)s +8015(as)s 8265(a)s 8431(result)s 480 7798(of)m 749(an)s gsave -1030 5444 translate +1030 7852 translate 0.6953 1.0000 scale 240 fnt31 0 -52(execute)m grestore 1730(,)s gsave -1834 5444 translate +1834 7852 translate 0.6953 1.0000 scale 240 fnt31 0 -52(execute\211from\211directory)m grestore 4094(or)s gsave -4351 5444 translate +4351 7852 translate 0.6953 1.0000 scale 240 fnt31 0 -52(execute\211from\211path)m grestore 6110(directi)s 6(v)k 3(e.)k gsave -7038 5444 translate +7038 7852 translate 0.6953 1.0000 scale 240 fnt31 0 -52(suppress\211args)m grestore -8396(undoes)s 480 5150(the)m 828(ef)s 6(fect)k +8396(undoes)s 480 7558(the)m 828(ef)s 6(fect)k 1424(of)s gsave -1695 5204 translate +1695 7612 translate 0.6953 1.0000 scale 240 fnt31 0 -52(no\211suppress\211args)m grestore 3297(.)s gsave -120 4829 translate +120 7237 translate 0.6953 1.0000 scale 240 fnt31 0 -52(require\211fd)m gsave 1584 0 translate 1.4219 1.0000 scale -240 fnt83 0 -52(fd-r)m 3(ang)k 2(e)k +240 fnt83 0 -52(fd\211r)m 3(ang)k 2(e)k grestore -2882(read|write)s +2940(read|write)s grestore -480 4530(In)m 676(sist)s 1054(that)s 1472(the)s +480 6938(In)m 676(sist)s 1054(that)s 1472(the)s 1820(\207ledescrip)s 2808(tor\(s\))s 3373(be)s 3655(opened)s 4405(for)s 4743(read)s 5152(ing)s 5511(resp.)s 6013(writ)s 6397(ing.)s 6807(It)s 7012(is)s 7222(an)s 7505(er)s 7690(ror)s 8028(if)s 8245(an)s 3(y)k 8642(de)s 8864(-)s -480 4290(scrip)m 937(tor)s 1258(mark)s 2(ed)k 2027(as)s +480 6698(scrip)m 937(tor)s 1258(mark)s 2(ed)k 2027(as)s 2272(re)s 2453(quired)s 3118(when)s 3689(the)s 4033(ser)s 4311(vice)s 4760(is)s 4966(about)s 5554(to)s 5788(be)s 6066(in)s 6249(v)s 4(ok)k 2(ed)k 6882(\(af)s 7158(ter)s 7465(the)s 7808(con)s 8151(\207g)s 8397(u)s -8512(ra)s 8697(tion)s 480 4050(has)m 850(been)s 1359(parsed\))s +8512(ra)s 8697(tion)s 480 6458(has)m 850(been)s 1359(parsed\))s 2111(w)s 2(as)k 2532(not)s 2898(spec)s 3316(i)s 3376(\207ed)s 3793(when)s 4369(the)s 4717(client)s 5307(w)s 2(as)k 5728(in)s 5911(v)s 4(ok)k 2(ed.)k 6595(Each)s 7130(\207le)s 7491(de)s 7713(scrip)s 8170(tor)s 8495(has)s -480 3810(a)m 646(sep)s 958(a)s 1064(rate)s 1477(set)s +480 6218(a)m 646(sep)s 958(a)s 1064(rate)s 1477(set)s 1742(ting,)s 2221(and)s 2625(the)s 2973(last)s 3364(one)s 3766(of)s gsave -4037 3864 translate +4037 6272 translate 0.6953 1.0000 scale 240 fnt31 0 -52(require\211fd)m grestore 5038(,)s gsave -5145 3864 translate +5145 6272 translate 0.6953 1.0000 scale 240 fnt31 0 -52(allow\211fd)m grestore 5946(,)s gsave -6053 3864 translate +6053 6272 translate 0.6953 1.0000 scale 240 fnt31 0 -52(ignore\211fd)m grestore 6954(,)s gsave -7061 3864 translate +7061 6272 translate 0.6953 1.0000 scale 240 fnt31 0 -52(null\211fd)m grestore 7821(or)s gsave -8080 3864 translate +8080 6272 translate 0.6953 1.0000 scale 240 fnt31 0 -52(reject\211fd)m grestore -480 3570(which)m 1122(af)s 1319(fect)s 1676(ed)s 1960(a)s +480 5977(which)m 1122(af)s 1319(fect)s 1676(ed)s 1960(a)s 2126(par)s 2431(tic)s 2662(u)s 2777(lar)s 3088(\207le)s 3449(de)s 3671(scrip)s 4128(tor)s 4453(will)s 4879(tak)s 2(e)k -5331(ef)s 5528(fect.)s 240 fnt83 480 3164(fd-r)m 3(ang)k 2(e)k -240 fnt82 1352 3162(may)m 1818(be)s 2100(a)s 2266(single)s -2893(number)s 9(,)k 3722(tw)s 2(o)k 4132(numbers)s -5007(separated)s 5967(by)s 6261(a)s 6427(h)s 1(yphen,)k -7239(or)s 7498(one)s 7900(number)s 480 2922(follo)m 6(wed)k -1382(by)s 1676(a)s 1842(h)s 1(yphen)k 2604(\(indicating)s -3692(all)s 3985(descriptors)s 5084(from)s 5608(that)s 6026(number)s -6817(onw)s 2(ards\).)k 7809(It)s 8014(may)s 8480(also)s -480 2682(be)m 760(one)s 1159(of)s 1428(the)s 1773(w)s 2(ords)k -gsave -2405 2736 translate +5331(ef)s 5528(fect.)s 240 fnt83 6049 5979(fd-)m 6302(r)s 3(ang)k 2(e)k +240 fnt82 6909 5977(may)m 7375(be)s 7657(a)s 7823(sin)s +8099(gle)s 8447(num)s 8873(-)s 480 5737(ber)m 9(,)k +883(tw)s 2(o)k 1293(num)s 1719(bers)s 2168(sep)s +2480(a)s 2586(rat)s 2837(ed)s 3121(by)s 3415(a)s +3581(h)s 1(y)k 3814(phen,)s 4387(or)s 4646(one)s +5048(num)s 5474(ber)s 5839(fol)s 6099(lo)s 6(wed)k +6736(by)s 7030(a)s 7196(h)s 1(y)k 7429(phen)s +7952(\(in)s 8214(di)s 8394(cat)s 8672(ing)s 480 5497(all)m +772(de)s 994(scrip)s 1451(tors)s 1858(from)s 2380(that)s +2796(num)s 3222(ber)s 3585(on)s 3822(w)s 2(ards\).)k +4573(It)s 4776(may)s 5240(also)s 5676(be)s 5956(one)s +6357(of)s 6626(the)s 6972(w)s 2(ords)k gsave +7604 5551 translate 0.6953 1.0000 scale -240 fnt31 0 -52(stdin)m +240 fnt31 +0 -52(stdin)m grestore -2905(,)s gsave -3009 2736 translate +8104(,)s gsave +8209 5551 translate 0.6953 1.0000 scale -240 fnt31 0 -52(stdout)m - +240 fnt31 0 -52(stdout)m grestore -3667(or)s gsave -3923 2736 translate +8867(or)s +gsave +480 5311 translate 0.6953 1.0000 scale 240 fnt31 0 -52(stderr)m grestore -4523(.)s 4625(Open-ended)s -5850(\207le)s 6209(descriptor)s 7221(rangers)s 7973(are)s 8317(allo)s 6(wed)k -480 2442(only)m 960(with)s gsave -1442 2496 translate +1080 5257(.)m 1174(Open-)s 1761(ended)s +2380(\207le)s 2730(de)s 2952(scrip)s 3409(tor)s 3723(rangers)s +4466(are)s 4802(al)s 4969(lo)s 6(wed)k 5596(only)s +6065(with)s gsave +6536 5311 translate 0.6953 1.0000 scale 240 fnt31 0 -52(reject\211fd)m grestore -2403(and)s -gsave -2807 2496 translate -0.6953 1.0000 scale -240 fnt31 0 -52(ignore\211fd)m -grestore -3708(,)s 3815(as)s 4065(otherwise)s -5050(the)s 5398(service)s 6130(program)s 7000(w)s 2(ould)k -7655(\207nd)s 8086(itself)s 8634(with)s 480 2202(a)m 646(v)s 3(ery)k -1122(lar)s 4(ge)k 1651(number)s 2442(of)s 2713(\207le)s -3074(descriptors)s 4173(open.)s 480 1794(When)m 1109(the)s 1457(con\207guration)s -2790(has)s 3160(been)s 3669(parsed,)s 4400(and)s 4804(before)s -5470(the)s 5818(service)s 6550(is)s 6760(about)s 7352(to)s -7591(be)s 7873(e)s 3(x)k 3(ecuted,)k 480 1554(stderr)m -1082(\(fd)s 1417(2\))s 1663(must)s 2187(be)s 2468(required)s -3320(or)s 3578(allo)s 6(wed)k 4385(\()s gsave -4458 1608 translate +7486(and)s gsave +7879 5311 translate 0.6953 1.0000 scale 240 fnt31 -0 -52(require\211fd)m +0 -52(ignore\211fd)m +grestore +8780(,)s 8876(as)s 480 5017(oth)m 783(er)s +968(wise)s 1457(the)s 1799(ser)s 2077(vice)s 2526(pro)s +2838(gram)s 3383(w)s 2(ould)k 4033(\207nd)s 4458(it)s +4590(self)s 5001(with)s 5477(a)s 5638(v)s 3(ery)k +6108(lar)s 4(ge)k 6632(num)s 7058(ber)s 7417(of)s +7683(\207le)s 8038(de)s 8260(scrip)s 8717(tors)s 480 4777(open.)m +1090(When)s 1699(the)s 2027(con)s 2370(\207g)s 2616(u)s +2731(ra)s 2916(tion)s 3325(has)s 3674(been)s 4163(parsed,)s +4874(and)s 5258(be)s 5480(fore)s 5900(the)s 6227(ser)s +6505(vice)s 6939(is)s 7129(about)s 7701(to)s 7920(be)s +8181(e)s 3(x)k 8399(e)s 8501(cut)s 8793(ed,)s +480 4537(stderr)m 1083(\(fd)s 1418(2\))s 1665(must)s 2189(be)s +2470(re)s 2651(quired)s 3320(or)s 3578(al)s 3745(lo)s 6(wed)k +4381(\()s gsave +4454 4591 translate +0.6953 1.0000 scale +240 fnt31 0 -52(require\211fd)m grestore -5518(or)s gsave -5776 1608 translate +5514(or)s gsave +5772 4591 translate 0.6953 1.0000 scale -240 fnt31 0 -52(allow\211fd)m +240 fnt31 +0 -52(allow\211fd)m grestore -6577(\))s -6703(for)s 7040(writing;)s 7841(this)s 8235(is)s 8444(so)s -8708(that)s 480 1314(the)m 823(error)s 1341(message)s 2202(printed)s -2931(by)s 3220(the)s 3563(serv)s 3(er')k 13(s)k -4348(child)s 4878(process)s 5641(if)s 5853(it)s 6040(cannot)s -gsave -6732 1368 translate +6573(\))s 6701(for)s 7038(writ)s 7422(ing;)s +7839(this)s 8234(is)s 8443(so)s 8708(that)s 480 4297(the)m +825(er)s 1010(ror)s 1345(mes)s 1721(sage)s 2198(print)s +2649(ed)s 2930(by)s 3220(the)s 3565(serv)s 3958(er')s 13(s)k +4350(child)s 4882(pro)s 5194(cess)s 5640(if)s 5853(it)s +6042(can)s 6371(not)s gsave +6734 4351 translate 0.6953 1.0000 scale 240 fnt31 0 -52(exec)m grestore -7187(the)s 7530(service)s 8256(program)s -480 1074(is)m 690(not)s 1056(lost.)s gsave -120 784 translate +7190(the)s +7535(ser)s 7813(vice)s 8263(pro)s 8575(gram)s 480 4057(is)m +690(not)s 1056(lost.)s gsave +120 3767 translate 0.6953 1.0000 scale -240 fnt31 0 -52(allow\211fd)m -gsave +240 fnt31 0 -52(allow\211fd)m gsave 1296 0 translate 1.4219 1.0000 scale -240 fnt83 0 -52(fd-r)m 3(ang)k 2(e)k -grestore -2594([read|write])s - -grestore -0 52(User)m 511(service)s 1243(daemon)s 2058(and)s 2462(client)s -3052(speci\207cation)s 8472(0.61.4)s -grestore - -grestore - -pgsave restore -showpage - -%%Page: 16 16 -%%BeginPageSetup -%%PageResources: font Times-Roman -%%+ font Times-Bold -%%+ font Courier-Bold -%%+ font Times-Italic -/pgsave save def -0.0500 dup scale 10 setlinewidth -%%EndPageSetup -gsave -0 0 translate -240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic -gsave -LoutPageSet -grestore -gsave -0 16840 translate -0.0000 rotate - -grestore - +240 fnt83 +0 -52(fd\211r)m 3(ang)k 2(e)k grestore -gsave -0 16840 translate -0.0000 rotate -gsave -1417 -15423 translate -240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic -gsave -0 LoutMargSet +2652([read|write])s grestore -240 fnt84 0 13842(16)m 240 fnt82 480 13251(Allo)m 6(w)k +480 3468(Allo)m 6(w)k 1126(the)s 1474(descriptor\(s\))s 2729(to)s 2968(be)s 3250(opened)s 4000(for)s 4338(reading)s 5108(resp.)s 5610(writing,)s 6407(or)s 6666(either)s 7269(if)s 7486(neither)s gsave -8209 13305 translate +8209 3522 translate 0.6953 1.0000 scale 240 fnt31 0 -52(read)m grestore 8669(nor)s gsave -480 13065 translate +480 3282 translate 0.6953 1.0000 scale 240 fnt31 0 -52(write)m grestore -1040 13011(is)m 1250(speci\207ed.)s +1040 3228(is)m 1250(speci\207ed.)s 2204(If)s 2434(a)s 2600(particular)s 3574(descriptor)s 4589(not)s 4955(speci\207ed)s 5863(by)s 6157(the)s 6505(client)s 7095(then)s -7564(it)s 7756(will)s 8182(be)s 8464(open)s 480 12771(onto)m +7564(it)s 7756(will)s 8182(be)s 8464(open)s 480 2988(onto)m gsave -959 12825 translate +959 3042 translate 0.6953 1.0000 scale 240 fnt31 0 -52(/dev/null)m grestore 1920(\(for)s 2337(reading,)s 3161(writing,)s 3958(or)s 4217(both,)s 4750(depending)s 5801(on)s 6098(whether)s gsave -6928 12825 translate +6928 3042 translate 0.6953 1.0000 scale 240 fnt31 0 -52(read)m grestore 7328(,)s gsave -7435 12825 translate +7435 3042 translate 0.6953 1.0000 scale 240 fnt31 0 -52(write)m grestore -7995(or)s 8254(neither)s 480 12531(w)m 2(as)k 901(speci\207ed\).)s +7995(or)s 8254(neither)s 480 2748(w)m 2(as)k 901(speci\207ed\).)s gsave -120 12191 translate +120 2408 translate 0.6953 1.0000 scale 240 fnt31 0 -52(null\211fd)m gsave 1152 0 translate 1.4219 1.0000 scale -240 fnt83 0 -52(fd-r)m 3(ang)k 2(e)k +240 fnt83 0 -52(fd\211r)m 3(ang)k 2(e)k grestore -2450([read|write])s +2508([read|write])s grestore -480 11892(Spec)m 938(i)s 998(fy)s 1251(that)s +480 2109(Spec)m 938(i)s 998(fy)s 1251(that)s 1669(the)s 2017(de)s 2239(scrip)s 2696(tor\(s\))s 3261(be)s 3543(opened)s 4293(onto)s gsave -4772 11946 translate +4772 2163 translate 0.6953 1.0000 scale 240 fnt31 0 -52(/dev/null)m grestore 5733(for)s 6071(read)s 6480(ing)s 6839(resp.)s 7341(writ)s 7725(ing,)s -8138(or)s 8397(both)s 8880(if)s 480 11652(nei)m 766(ther)s +8138(or)s 8397(both)s 8880(if)s 480 1869(nei)m 766(ther)s gsave -1181 11706 translate +1181 1923 translate 0.6953 1.0000 scale 240 fnt31 0 -52(read)m grestore 1624(nor)s gsave -1986 11706 translate +1986 1923 translate 0.6953 1.0000 scale 240 fnt31 0 -52(write)m @@ -4407,141 +4381,188 @@ grestore 4093(spec)s 4511(i)s 4571(\207)s 4696(ca)s 4908(tion)s 5320(of)s 5574(these)s 6104(\207le)s 6448(de)s 6670(scrip)s 7127(tors)s 7519(by)s 7796(the)s 8127(client)s 8700(will)s -480 11412(be)m 762(silent)s 1279(ly)s 1519(ig)s 1698(nored;)s +480 1629(be)m 762(silent)s 1279(ly)s 1519(ig)s 1698(nored;)s 2355(the)s 2703(client)s 3293(will)s 3719(see)s 4080(its)s 4356(ends)s 4846(of)s 5117(the)s 5465(de)s 5687(scrip)s 6144(tors)s 6553(be)s 6775(ing)s 7134(closed)s 7803(im)s 8055(me)s 8343(di)s 8523(ate)s 8797(ly)s 15(.)k gsave -120 11072 translate +120 1289 translate 0.6953 1.0000 scale 240 fnt31 0 -52(reject\211fd)m gsave 1440 0 translate 1.4219 1.0000 scale -240 fnt83 0 -52(fd-r)m 3(ang)k 2(e)k +240 fnt83 0 -52(fd\211r)m 3(ang)k 2(e)k grestore grestore -480 10778(Do)m 824(not)s 1187(allo)s 6(w)k 1764(the)s +480 995(Do)m 824(not)s 1187(allo)s 6(w)k 1764(the)s 2109(descriptor\(s\))s 3362(to)s 3598(be)s 3878(speci\207ed)s 4783(by)s 5075(the)s 5420(client.)s 6052(It)s 6254(is)s 6462(an)s 6742(error)s 7263(if)s 7477(an)s 3(y)k 7871(descriptor\(s\))s -480 10538(mark)m 2(ed)k 1253(for)s 1591(rejection)s 2483(are)s +480 755(mark)m 2(ed)k 1253(for)s 1591(rejection)s 2483(are)s 2830(speci\207ed)s 3738(when)s 4314(the)s 4662(service)s 5394(is)s 5604(about)s 6196(to)s 6435(be)s 6717(in)s 9(v)k 4(ok)k 2(ed)k -7532(\(after)s 8107(the)s 480 10298(con\207guration)m 1813(has)s 2183(been)s -2692(parsed\).)s gsave -120 9958 translate +7532(\(after)s 8107(the)s 0 52(User)m 511(service)s 1243(daemon)s +2058(and)s 2462(client)s 3052(speci\207cation)s 8611(1.0.1)s +grestore + +grestore + +pgsave restore +showpage + +%%Page: 16 16 +%%BeginPageSetup +%%PageResources: font Times-Roman +%%+ font Times-Bold +%%+ font Courier-Bold +%%+ font Times-Italic +/pgsave save def +0.0500 dup scale 10 setlinewidth +%%EndPageSetup +gsave +0 0 translate +240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic +gsave +LoutPageSet +grestore +gsave +0 16840 translate +0.0000 rotate + +grestore + +grestore +gsave +0 16840 translate +0.0000 rotate +gsave +1417 -15423 translate +240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic +gsave +0 LoutMargSet +grestore +240 fnt84 0 13842(16)m 240 fnt82 480 13251(con\207guration)m 1813(has)s +2183(been)s 2692(parsed\).)s gsave +120 12911 translate 0.6953 1.0000 scale 240 fnt31 0 -52(ignore\211fd)m gsave 1440 0 translate 1.4219 1.0000 scale -240 fnt83 0 -52(fd-r)m 3(ang)k 2(e)k - +240 fnt83 +0 -52(fd\211r)m 3(ang)k 2(e)k grestore grestore -480 9664(Silent)m 1037(ly)s 1260(ig)s 1439(nore)s 1902(an)s 3(y)k -2281(spec)s 2699(i)s 2759(\207)s 2884(ca)s 3096(tion)s -3507(by)s 3783(the)s 4113(client)s 4685(of)s 4938(those)s -5481(de)s 5703(scrip)s 6160(tor\(s\).)s 6762(The)s 7172(pipes)s -7710(cor)s 8015(re)s 8196(spond)s 8767(ing)s 480 9424(to)m -719(these)s 1266(de)s 1488(scrip)s 1945(tors)s 2354(will)s -2780(be)s 3062(closed)s 3731(just)s 4136(be)s 4358(fore)s -4798(the)s 5146(ser)s 5424(vice)s 5878(is)s 6088(in)s -6271(v)s 4(ok)k 2(ed.)k gsave -120 9084 translate +480 12617(Silent)m 1037(ly)s +1260(ig)s 1439(nore)s 1902(an)s 3(y)k 2281(spec)s +2699(i)s 2759(\207)s 2884(ca)s 3096(tion)s 3507(by)s +3783(the)s 4113(client)s 4685(of)s 4938(those)s 5481(de)s +5703(scrip)s 6160(tor\(s\).)s 6762(The)s 7172(pipes)s 7710(cor)s +8015(re)s 8196(spond)s 8767(ing)s 480 12377(to)m 719(these)s +1266(de)s 1488(scrip)s 1945(tors)s 2354(will)s 2780(be)s +3062(closed)s 3731(just)s 4136(be)s 4358(fore)s 4798(the)s +5146(ser)s 5424(vice)s 5878(is)s 6088(in)s 6271(v)s 4(ok)k 2(ed.)k +gsave +120 12037 translate 0.6953 1.0000 scale -240 fnt31 0 -52(disconnect\211hup)m - +240 fnt31 0 -52(disconnect\211hup)m grestore gsave -120 8844 translate +120 11797 translate 0.6953 1.0000 scale 240 fnt31 0 -52(no\211disconnect\211hup)m grestore -480 8550(Causes)m 1209(the)s 1557(service')s 13(s)k -2443(process)s 3211(group)s 3823(to)s 4062(get)s 4414(a)s -gsave -4580 8604 translate +480 11503(Caus)m +950(es)s 1200(the)s 1548(ser)s 1826(vice')s 13(s)k +2434(pro)s 2746(cess)s 3195(group)s 3807(to)s 4046(get)s +4398(a)s gsave +4564 11557 translate 0.6953 1.0000 scale 240 fnt31 0 -52(SIGHUP)m grestore -5240(if)s 5457(the)s 5805(client)s -6395(disconnects)s 7562(before)s 8228(the)s 8576(main)s 480 8310(service)m -1212(process)s 1980(terminates.)s gsave -3078 8364 translate +5224(if)s 5441(the)s +5789(client)s 6379(dis)s 6649(con)s 6992(nects)s 7534(be)s +7756(fore)s 8196(the)s 8544(main)s 480 11263(ser)m 758(vice)s +1209(pro)s 1521(cess)s 1966(ter)s 2217(mi)s 2463(nates.)s +gsave +3055 11317 translate 0.6953 1.0000 scale 240 fnt31 0 -52(no\211disconnect\211hup)m grestore -4840(cancels)s -gsave -5594 8364 translate +4813(can)s 5142(cels)s gsave +5560 11317 translate 0.6953 1.0000 scale -240 fnt31 0 -52(disconnect\211hup)m -grestore -6995(.)s 480 7902(If)m 700(one)s -1091(of)s 1352(the)s 1689(reading)s 2449(descriptors)s 3537(speci\207ed)s -4435(when)s 5000(the)s 5337(client)s 5917(is)s 6116(called)s -6734(gets)s 7159(a)s 7315(read)s 7773(error)s 9(,)k -8324(or)s 8572(if)s 8778(the)s 480 7661(service)m 1212(is)s -1422(disconnected)s 2729(for)s 3067(some)s 3628(other)s 4179(reason,)s -4910(then)s 5379(the)s gsave -5727 7715 translate +240 fnt31 +0 -52(disconnect\211hup)m +grestore +6961(.)s 7122(If)s 7348(one)s 7747(of)s +8014(the)s 8358(read)s 8767(ing)s 480 11023(de)m 702(scrip)s +1159(tors)s 1568(spec)s 1986(i)s 2046(\207ed)s 2463(when)s +3039(the)s 3387(client)s 3977(is)s 4187(called)s 4815(gets)s +5251(a)s 5417(read)s 5886(er)s 6071(ror)s 9(,)k +6447(or)s 6706(if)s 6923(the)s 7271(ser)s 7549(vice)s +8003(is)s 8213(dis)s 8483(con)s 8826(-)s 480 10782(nect)m +878(ed)s 1162(for)s 1500(some)s 2061(oth)s 2364(er)s +2609(rea)s 2900(son,)s 3340(then)s 3809(the)s gsave +4157 10836 translate 0.6953 1.0000 scale -240 fnt31 0 -52(SIGHUP)m +240 fnt31 +0 -52(SIGHUP)m grestore -6387(will)s -6813(be)s 7095(deli)s 6(v)k 3(ered)k 240 fnt83 -8033 7663(befor)m 8(e)k 240 fnt82 8689 7661(the)m 480 7421(writing)m -1223(end\(s\))s 1869(of)s 2140(the)s 2488(service')s 13(s)k -3374(reading)s 4144(pipe\(s\))s 4856(are)s 5203(closed,)s 5921(so)s -6187(that)s 6605(the)s 6953(client)s 7543(can)s 7932(distinguish)s -480 7181(disconnection)m 1866(from)s 2390(reading)s 3160(EOF)s 3670(on)s -3967(a)s 4133(pipe.)s gsave -120 6841 translate +4817(will)s 5243(be)s 5525(de)s 5747(li)s 6(v)k +5988(ered)s 240 fnt83 6457 10784(be)m 6676(for)s 8(e)k +240 fnt82 7106 10782(the)m 7454(writ)s 7838(ing)s 8197(end\(s\))s +8843(of)s 480 10542(the)m 818(ser)s 1096(vice')s 13(s)k +1694(read)s 2103(ing)s 2452(pipe\(s\))s 3154(are)s 3491(closed,)s +4199(so)s 4455(that)s 4863(the)s 5201(client)s 5781(can)s +6160(dis)s 6430(tin)s 6679(guish)s 7245(dis)s 7515(con)s +7858(nec)s 8183(tion)s 8602(from)s 480 10302(read)m 889(ing)s +1248(EOF)s 1758(on)s 2055(a)s 2221(pipe.)s gsave +120 9962 translate 0.6953 1.0000 scale -240 fnt31 0 -52(reset)m +240 fnt31 +0 -52(reset)m grestore -480 6547(Resets)m -1155(the)s 1503(e)s 3(x)k 3(ecution)k 2484(settings)s -3265(to)s 3504(the)s 3852(def)s 2(ault.)k 4617(This)s -5093(is)s 5303(equi)s 6(v)k 6(alent)k 6347(to:)s -gsave -960 6361 translate +480 9668(Resets)m 1155(the)s 1503(e)s 3(x)k 3(ecution)k +2484(settings)s 3265(to)s 3504(the)s 3852(def)s 2(ault.)k +4617(This)s 5093(is)s 5303(equi)s 6(v)k 6(alent)k +6347(to:)s gsave +960 9482 translate 0.6953 1.0000 scale -240 fnt31 0 -52(cd)m 432(~/)s 0 -292(reject)m 0 -532(no\211set\211environment)m -0 -772(suppress\211args)m 0 -1012(allow\211fd)m 1296(0)s 1584(read)s 0 -1252(allow\211fd)m -1296(1\2112)s 1872(write)s 0 -1492(reject\211fd)m 1440(3\211)s 0 -1732(disconnect\211hup)m - +240 fnt31 0 -52(cd)m 432(~/)s 0 -292(reject)m +0 -532(no\211set\211environment)m 0 -772(suppress\211args)m 0 -1012(allow\211fd)m 1296(0)s 1584(read)s +0 -1252(allow\211fd)m 1296(1\2112)s 1872(write)s 0 -1492(reject\211fd)m 1440(3\211)s +0 -1732(disconnect\211hup)m grestore -0 4085(If)m 230(no)s gsave -523 4139 translate +0 7505(If)m 230(no)s gsave +523 7559 translate 0.6953 1.0000 scale -240 fnt31 0 -52(execute)m +240 fnt31 0 -52(execute)m + grestore -1223(,)s -gsave -1330 4139 translate +1223(,)s gsave +1330 7559 translate 0.6953 1.0000 scale 240 fnt31 0 -52(execute\211from\211path)m grestore 3032(,)s gsave -3139 4139 translate +3139 7559 translate 0.6953 1.0000 scale -240 fnt31 0 -52(execute\211from\211directory)m - +240 fnt31 +0 -52(execute\211from\211directory)m grestore 5401(or)s gsave -5660 4139 translate +5660 7559 translate 0.6953 1.0000 scale 240 fnt31 0 -52(builtin)m grestore -6420(is)s 6630(interpreted)s -7722(before)s 8388(all)s 8681(the)s 0 3845(\207les)m 449(are)s -796(read)s 1265(then)s 1734(the)s 2082(request)s 2832(is)s -3042(rejected.)s 9066 670 0 670 240 240 60 0 2821 LoutGr2 +6420(is)s +6630(interpreted)s 7722(before)s 8388(all)s 8681(the)s 0 7265(\207les)m +449(are)s 796(read)s 1265(then)s 1734(the)s 2082(request)s +2832(is)s 3042(rejected.)s 9066 670 0 670 240 240 60 0 6241 LoutGr2 newpath 0 ysize 0.3 ft sub moveto xsize 0 rlineto 0 0.1 ft rlineto @@ -4551,35 +4572,35 @@ grestore 320 fnt84 0 66(4.3.)m 628(Err)s 5(ors)k 1618(in)s 1958(the)s 2458(con\207guration)s 4359(\207le)s grestore -0 2359(If)m +0 5779(If)m 230(a)s 396(syntax)s 1076(error)s 1599(or)s 1858(other)s 2409(problem)s 3266(occurs)s 3941(when)s 4517(processing)s 5593(a)s 5759(con\207guration)s 7092(\207le)s 7453(then)s 7922(a)s 8088(diagnostic)s -0 2119(will)m 422(be)s 699(issued,)s 1399(to)s 1633(where)s 6(v)k 3(er)k +0 5539(will)m 422(be)s 699(issued,)s 1399(to)s 1633(where)s 6(v)k 3(er)k 2568(the)s 2911(error)s 3429(messages)s 4378(are)s 4721(currently)s 5632(being)s 6212(sent)s 6652(\(see)s 7087(the)s gsave -7430 2173 translate +7430 5593 translate 0.6953 1.0000 scale 240 fnt31 0 -52(errors\211)m grestore -8185(f)s 2(amily)k 8855(of)s 0 1879(directi)m 6(v)k 3(es,)k -1026(abo)s 3(v)k 3(e\).)k 0 1471(The)m 428(error)s +8185(f)s 2(amily)k 8855(of)s 0 5299(directi)m 6(v)k 3(es,)k +1026(abo)s 3(v)k 3(e\).)k 0 4891(The)m 428(error)s 951(will)s 1377(cause)s 1964(processing)s 3040(of)s 3311(the)s 3659(con\207guration)s 4992(\207les)s 5441(to)s 5680(cease)s 6253(at)s 6485(that)s 6903(point,)s 7502(unless)s 8151(the)s 8499(error)s -0 1231(w)m 2(as)k 421(inside)s 1048(a)s gsave -1214 1285 translate +0 4651(w)m 2(as)k 421(inside)s 1048(a)s gsave +1214 4705 translate 0.6953 1.0000 scale 240 fnt31 0 -52(catch\211quit)m grestore 2275(construct.)s 3255(In)s 3511(this)s 3907(case)s 4374(the)s 4722(settings)s 5503(controlling)s 6605(the)s 6953(program')s 13(s)k -7973(e)s 3(x)k 3(ecution)k 0 991(will)m 426(be)s +7973(e)s 3(x)k 3(ecution)k 0 4411(will)m 426(be)s 708(reset)s 1218(to)s 1457(the)s 1805(def)s 2(aults)k 2610(as)s 2860(if)s 3077(a)s gsave -3243 1045 translate +3243 4465 translate 0.6953 1.0000 scale 240 fnt31 0 -52(reset)m @@ -4587,11 +4608,25 @@ grestore 3803(directi)s 6(v)k 3(e)k 4685(had)s 5089(been)s 5598(issued,)s 6303(and)s 6707(parsing)s 7464(continues)s 8432(after)s gsave -0 805 translate +0 4225 translate 0.6953 1.0000 scale 240 fnt31 0 -52(hctac)m grestore -500 751(.)m 0 52(0.61.4)m 4809(User)s +500 4171(.)m 9066 609 0 609 240 240 60 0 3208 LoutGr2 +newpath 0 ysize 0.3 ft sub moveto +xsize 0 rlineto +0 0.1 ft rlineto +xsize neg 0 rlineto +closepath fill +grestore +320 fnt84 0 5(4.4.)m +628(Defaults)s +grestore +0 2746(The)m 428(def)s 2(ault)k 1149(con\207guration)s +2482(processing)s 3558(is)s 3768(as)s 4018(if)s 4235(the)s +4583(daemon)s 5398(were)s 5918(parsing)s 6675(an)s 6958(o)s 3(v)k 3(erall)k +7670(con\207guration)s 0 2506(\207le)m 361(whose)s 1029(contents)s 1877(were)s +2397(as)s 2647(follo)s 6(ws:)k 0 52(1.0.1)m 4809(User)s 5320(service)s 6052(daemon)s 6867(and)s 7271(client)s 7861(speci\207cation)s grestore @@ -4633,51 +4668,34 @@ gsave 1 LoutMargSet grestore 240 fnt84 8831 13842(17)m gsave -0 12808 translate -240 fnt82 9066 609 0 609 240 240 60 LoutGraphic -gsave -newpath 0 ysize 0.3 ft sub moveto -xsize 0 rlineto -0 0.1 ft rlineto -xsize neg 0 rlineto -closepath fill -grestore -320 fnt84 0 5(4.4.)m 628(Defaults)s - -grestore -240 fnt82 0 12346(The)m 428(def)s 2(ault)k 1149(con\207guration)s -2482(processing)s 3558(is)s 3768(as)s 4018(if)s 4235(the)s -4583(daemon)s 5398(were)s 5918(parsing)s 6675(an)s 6958(o)s 3(v)k 3(erall)k -7670(con\207guration)s 0 12106(\207le)m 361(whose)s 1029(contents)s 1877(were)s -2397(as)s 2647(follo)s 6(ws:)k gsave -480 11920 translate +480 13335 translate 0.6953 1.0000 scale -240 fnt31 0 -52(reset)m -0 -292(user\211rcfile)m 1728(~/.userv/rc)s 0 -532(errors\211to\211stderr)m 0 -772(include)m 1152(/etc/userv/system.default)s -0 -1012(if)m 432(grep)s 1152(service\211user\211shell)s 3888(/etc/shells)s 432 -1252(errors\211push)m -720 -1492(catch\211quit)m 1008 -1732(include\211ifexist)m gsave +240 fnt31 0 -52(reset)m 0 -292(user\211rcfile)m +1728(~/.userv/rc)s 0 -532(errors\211to\211stderr)m 0 -772(include)m 1152(/etc/userv/system.default)s 0 -1012(if)m +432(grep)s 1152(service\211user\211shell)s 3888(/etc/shells)s 432 -1252(errors\211push)m 720 -1492(catch\211quit)m +1008 -1732(include\211ifexist)m gsave 3312 -1680 translate 1.4219 1.0000 scale -240 fnt83 0 -52(\207le)m 345(speci\207ed)s -1248(by)s 1530(most)s 2046(r)s 8(ecent)k 2699(user\211r)s 8(c\207le)k +240 fnt83 0 -52(\207le)m 345(speci\207ed)s 1248(by)s +1530(most)s 2046(r)s 8(ecent)k 2699(user\211r)s 8(c\207le)k 3767(dir)s 8(ective)k grestore 720 -1972(hctac)m 432 -2212(srorre)m 0 -2452(fi)m 0 -2692(include)m 1152(/etc/userv/system.override)s 0 -2932(quit)m grestore -0 8444(If)m 226(one)s -624(of)s 891(the)s gsave -1235 8498 translate +240 fnt82 0 9859(If)m +226(one)s 624(of)s 891(the)s gsave +1235 9913 translate 0.6953 1.0000 scale -240 fnt31 0 -52(\211\211override)m +240 fnt31 0 -52(\211\211override)m + grestore -2292(options)s -3044(to)s 3279(the)s 3623(client)s 4209(is)s 4415(used)s -4908(then)s 5373(it)s 5561(will)s 5983(instead)s 6714(be)s -6992(as)s 7238(if)s 7451(the)s 7795(daemon)s 8606(were)s -0 8204(parsing)m 757(an)s 1040(o)s 3(v)k 3(erall)k +2292(options)s 3044(to)s 3279(the)s 3623(client)s 4209(is)s +4415(used)s 4908(then)s 5373(it)s 5561(will)s 5983(instead)s +6714(be)s 6992(as)s 7238(if)s 7451(the)s 7795(daemon)s +8606(were)s 0 9619(parsing)m 757(an)s 1040(o)s 3(v)k 3(erall)k 1752(con\207guration)s 3085(as)s 3335(follo)s 6(ws:)k gsave -480 8018 translate +480 9433 translate 0.6953 1.0000 scale 240 fnt31 0 -52(reset)m 0 -292(errors\211to\211stderr)m 0 -532(include)m gsave @@ -4690,7 +4708,7 @@ grestore 0 -772(quit)m grestore 0 52(User)m 511(service)s -1243(daemon)s 2058(and)s 2462(client)s 3052(speci\207cation)s 8472(0.61.4)s +1243(daemon)s 2058(and)s 2462(client)s 3052(speci\207cation)s 8611(1.0.1)s grestore @@ -4790,73 +4808,73 @@ grestore 832(pipes,)s 1444(one)s 1846(end)s 2250(of)s 2521(each)s 3016(pipe)s 3484(being)s 4069(open)s 4592(on)s 4889(the)s 5237(appropriate)s 6381(\207le)s 6742(descriptor)s 7757(in)s 8000(the)s -8348(service)s 480 9505(program)m 1350(\(when)s 2005(it)s 2197(is)s -2407(in)s 9(v)k 4(ok)k 2(ed\))k 3292(and)s -3696(the)s 4044(other)s 4595(end)s 4999(being)s 5584(held)s -6054(by)s 6348(the)s 6696(client)s 7286(process,)s 8110(which)s -480 9265(will)m 906(read)s 1375(and)s 1779(write)s 2325(\207les)s -2774(it)s 2966(opens)s 3576(on)s 3873(behalf)s 4542(of)s -4813(its)s 5089(caller)s 5678(or)s 5937(\207le)s 6298(descriptors)s -7397(it)s 7589(is)s 7799(passed)s 8495(by)s 480 9025(its)m -756(caller)s 13(.)k 480 8617(Data)m 991(may)s 1457(be)s +8348(service)s 480 9505(program)m 1347(\(when)s 1999(it)s 2188(is)s +2394(in)s 9(v)k 4(ok)k 2(ed\))k 3276(and)s +3677(the)s 4022(other)s 4569(end)s 4970(being)s 5552(held)s +6019(by)s 6309(the)s 6654(client)s 7241(process,)s 8062(which)s +8700(will)s 480 9265(read)m 942(and)s 1339(write)s 1878(\207les)s +2320(it)s 2505(opens)s 3108(on)s 3398(behalf)s 4060(of)s +4324(its)s 4593(caller)s 5175(or)s 5427(\207le)s 5781(descriptors)s +6873(it)s 7058(is)s 7261(passed)s 7950(by)s 8237(its)s +8506(caller)s 13(.)k 480 9025(Data)m 991(may)s 1457(be)s 1739(passed)s 2435(into)s 2860(the)s 3208(service)s 3940(through)s 4742(reading)s 5512(pipes)s 6068(and)s 6472(out)s 6838(of)s -7109(it)s 7301(through)s 8103(writing)s 480 8377(pipes.)m 1083(These)s +7109(it)s 7301(through)s 8103(writing)s 480 8785(pipes.)m 1083(These)s 1703(pipes)s 2252(can)s 2634(remain)s 3347(open)s 3864(only)s 4337(until)s 4823(the)s 5164(service)s 5889(and)s 6287(client)s 6870(ha)s 4(v)k 3(e)k 7364(terminated,)s 8485(or)s -8737(can)s 480 8137(be)m 762(made)s 1336(to)s 1575(stay)s +8737(can)s 480 8545(be)m 762(made)s 1336(to)s 1575(stay)s 2014(open)s 2537(after)s 3033(the)s 3381(client)s 3971(has)s 4341(terminated)s 5420(and)s 5824(\(if)s 6120(the)s 6468(service)s -7200(program)s 8070(forks\))s 8689(the)s 480 7897(main)m 1015(service)s -1747(process)s 2515(has)s 2885(e)s 3(xited;)k 3578(the)s -3926(beha)s 4(viour)k 4939(is)s 5149(controlled)s 6176(by)s -6470(options)s 7226(passed)s 7922(to)s 8161(the)s 8509(client)s -480 7657(by)m 774(its)s 1050(caller)s 13(.)k 480 7249(The)m -901(caller)s 1483(can)s 1864(arrange)s 2629(that)s 3039(a)s -3198(writing)s 3934(pipe)s 4394(be)s 4669(connected)s 5689(to)s -5921(a)s 6080(pipe)s 6540(or)s 6792(similar)s 7506(object)s -8143(and)s 8539(cause)s 480 7009(attempts)m 1340(to)s 1579(write)s -2125(to)s 2364(that)s 2782(descriptor)s 3797(by)s 4091(the)s -4439(service)s 5171(to)s 5410(generate)s 6275(a)s gsave -6441 7063 translate +7200(program)s 8070(forks\))s 8689(the)s 480 8305(main)m 998(service)s +1712(process)s 2462(has)s 2814(e)s 3(xited;)k 3489(the)s +3820(beha)s 4(viour)k 4815(is)s 5007(controlled)s 6016(by)s +6292(options)s 7031(passed)s 7709(to)s 7930(the)s 8260(client)s +8832(by)s 480 8065(its)m 751(caller)s 13(.)k 1426(The)s +1848(caller)s 2432(can)s 2816(arrange)s 3582(that)s 3995(a)s +4156(writing)s 4893(pipe)s 5356(be)s 5633(connected)s 6655(to)s +6889(a)s 7050(pipe)s 7512(or)s 7766(similar)s 8482(object)s +480 7825(and)m 884(cause)s 1471(attempts)s 2331(to)s 2570(write)s +3116(to)s 3355(that)s 3773(descriptor)s 4788(by)s 5082(the)s +5430(service)s 6162(to)s 6401(generate)s 7266(a)s gsave +7432 7879 translate 0.6953 1.0000 scale 240 fnt31 0 -52(SIGPIPE)m grestore -7201(\(or)s gsave -7539 7063 translate +8192(\(or)s gsave +8530 7879 translate 0.6953 1.0000 scale 240 fnt31 0 -52(EPIPE)m grestore -8099(if)s +480 7585(if)m gsave -8316 7063 translate +684 7639 translate 0.6953 1.0000 scale 240 fnt31 0 -52(SIGPIPE)m grestore -480 6769(is)m 690(caught)s 1388(or)s -1647(ignored\))s 2506(in)s 2749(the)s 3097(service.)s 480 6361(Lik)m 2(e)k 6(wise,)k -1455(the)s 1803(service)s 2535(can)s 2924(close)s 3471(\207ledescriptors)s -4875(speci\207ed)s 5783(for)s 6121(reading,)s 6945(which)s 7587(will)s -8013(cause)s 8600(the)s 480 6121(corresponding)m 1902(\207ledescriptors)s 3306(passed)s -4002(by)s 4296(the)s 4644(caller)s 5233(to)s 5472(be)s -5754(closed,)s 6472(so)s 6738(that)s 7156(if)s 7373(these)s -7920(are)s 8267(pipes)s 480 5881(processes)m 1447(which)s 2089(write)s -2635(to)s 2874(them)s 3412(will)s 3838(recei)s 6(v)k 3(e)k +1431(is)s 1628(caught)s 2313(or)s +2559(ignored\))s 3405(in)s 3635(the)s 3970(service.)s 4797(Lik)s 2(e)k 6(wise,)k +5759(the)s 6094(service)s 6813(can)s 7189(close)s 7722(\207ledescriptors)s +480 7345(speci\207ed)m 1373(for)s 1696(reading,)s 2505(which)s 3132(will)s +3543(cause)s 4115(the)s 4448(corresponding)s 5855(\207ledescriptors)s 7244(passed)s +7925(by)s 8204(the)s 8537(caller)s 480 7105(to)m 716(be)s +995(closed,)s 1709(so)s 1972(that)s 2387(if)s 2600(these)s +3144(are)s 3488(pipes)s 4040(processes)s 5004(which)s 5643(write)s +6185(to)s 6421(them)s 6956(will)s 7378(recei)s 6(v)k 3(e)k gsave -4574 5935 translate +8111 7159 translate 0.6953 1.0000 scale 240 fnt31 0 -52(SIGPIPE)m grestore -5334(or)s gsave -5593 5935 translate +8867(or)s gsave +480 6919 translate 0.6953 1.0000 scale 240 fnt31 0 -52(EPIPE)m grestore -6093(.)s 0 5426(\213)m 480(If)s gsave -706 5480 translate +980 6865(.)m 0 6460(\213)m 480(If)s gsave +706 6514 translate 0.6953 1.0000 scale 240 fnt31 0 -52(no\211suppress\211args)m @@ -4864,96 +4882,133 @@ grestore 2363(is)s 2568(set)s 2888(then)s 3353(ar)s 4(guments)k 4391(passed)s 5082(to)s 5316(the)s 5660(client)s 6245(by)s 6534(its)s 6805(caller)s 7390(will)s 7811(be)s 8088(passed)s -8779(on,)s 480 5186(v)m 3(erbatim,)k 1433(to)s 1672(the)s -2020(service.)s 0 4750(\213)m 480(F)s 3(a)k 716(tal)s +8779(on,)s 480 6220(v)m 3(erbatim,)k 1433(to)s 1672(the)s +2020(service.)s 0 5784(\213)m 480(F)s 3(a)k 716(tal)s 1009(sig)s 1281(nals)s 1717(and)s 2121(sys)s 2418(tem)s 2836(call)s 3235(f)s 2(ail)k 3545(ures)s 3994(e)s 3(x)k 4212(pe)s 4434(ri)s 4573(enced)s 5189(by)s 5483(the)s 5831(client)s 6421(will)s 6847(re)s 7028(sult)s 7433(in)s 7676(the)s 8024(dis)s 8294(con)s 8637(nec)s 8962(-)s -480 4510(tion)m 909(of)s 1180(the)s 1528(ser)s 1806(vice)s +480 5544(tion)m 909(of)s 1180(the)s 1528(ser)s 1806(vice)s 2260(from)s 2784(the)s 3132(client)s 3722(and)s 4126(pos)s 4450(si)s 4603(bly)s 4963(some)s 5524(of)s 5795(the)s 6143(com)s 6555(mu)s 6856(ni)s 7036(ca)s 7248(tion)s -7677(\207le)s 8038(de)s 8260(scrip)s 8717(tors)s 480 4270(de)m +7677(\207le)s 8038(de)s 8260(scrip)s 8717(tors)s 480 5304(de)m 702(scribed)s 1450(abo)s 3(v)k 3(e;)k 2128(if)s gsave -2345 4324 translate +2345 5358 translate 0.6953 1.0000 scale 240 fnt31 0 -52(disconnect\211hup)m grestore 3806(is)s 4016(set)s 4341(then)s 4810(the)s 5158(ser)s 5436(vice)s 5890(will)s 6316(also)s 6754(be)s 7036(sent)s 7481(a)s gsave -7647 4324 translate +7647 5358 translate 0.6953 1.0000 scale 240 fnt31 0 -52(SIGHUP)m grestore -8247(.)s 0 3834(\213)m 480(The)s 908(v)s 6(alue)k +8247(.)s 0 4868(\213)m 480(The)s 908(v)s 6(alue)k 1476(of)s 1747(the)s gsave -2095 3888 translate +2095 4922 translate 0.6953 1.0000 scale 240 fnt31 0 -52(LOGNAME)m grestore 2855(\(or)s gsave -3193 3888 translate +3193 4922 translate 0.6953 1.0000 scale 240 fnt31 0 -52(USER)m grestore 3593(\))s 3721(en)s 9(vironment)k 4981(v)s 6(ariable)k 5800(as)s 6050(passed)s 6746(to)s -6985(the)s 7333(client)s 7923(will)s 8349(be)s 480 3594(used)m +6985(the)s 7333(client)s 7923(will)s 8349(be)s 480 4628(used)m 977(as)s 1227(the)s 1575(login)s 2124(name)s 2698(of)s 2969(the)s 3317(calling)s 4020(user)s 4478(if)s 4695(the)s 5043(uid)s 5407(of)s 5678(the)s 6026(calling)s 6729(process)s -7497(matches)s 8331(the)s 8679(uid)s 480 3354(corresponding)m 1902(to)s +7497(matches)s 8331(the)s 8679(uid)s 480 4388(corresponding)m 1902(to)s 2141(that)s 2559(login)s 3108(name.)s 3730(Otherwise)s 4768(the)s 5116(calling)s 5819(uid')s 13(s)k 6335(passw)s 2(ord)k -7295(entry)s 7840(will)s 8266(be)s 8548(used)s 480 3114(to)m -719(determine)s 1730(the)s 2078(calling)s 2781(user')s 13(s)k -3389(login)s 3938(name.)s 480 2706(This)m 956(login)s 1505(name)s -2079(and)s 2483(the)s 2831(calling)s 3534(uid)s 3898(are)s -4245(a)s 4(v)k 6(ailable)k 5153(in)s 5396(the)s -5744(con\207guration)s 7077(language)s 7997(in)s 8240(the)s gsave -480 2520 translate +7295(entry)s 7840(will)s 8266(be)s 8548(used)s 480 4148(to)m +708(determine)s 1708(the)s 2045(calling)s 2737(user')s 13(s)k +3334(login)s 3872(name.)s 4543(This)s 5007(login)s 5545(name)s +6108(and)s 6501(the)s 6838(calling)s 7530(uid)s 7883(are)s +8218(a)s 4(v)k 6(ailable)k 480 3908(in)m 723(the)s +1071(con\207guration)s 2404(language)s 3324(in)s 3567(the)s gsave +3915 3962 translate 0.6953 1.0000 scale 240 fnt31 0 -52(calling\211user)m grestore -1741 2466(parameter)m 2755(and)s 3159(are)s 3506(passed)s -4202(to)s 4441(the)s 4789(service)s 5521(program)s 6391(in)s -6634(en)s 9(vironment)k 7894(v)s 6(ariables)k gsave -480 2280 translate +5176(parameter)s 6190(and)s 6594(are)s 6941(passed)s +7637(to)s 7876(the)s 8224(service)s 480 3668(program)m 1334(in)s +1561(en)s 9(vironment)k 2805(v)s 6(ariables)k gsave +3696 3722 translate 0.6953 1.0000 scale 240 fnt31 0 -52(USERV_USER)m grestore -1541 2226(and)m gsave -1945 2280 translate +4741(and)s gsave +5129 3722 translate 0.6953 1.0000 scale 240 fnt31 0 -52(USERV_UID)m grestore -2846(.)s -480 1818(The)m 901(shell)s 1400(corresponding)s 2815(to)s 3047(that)s -3458(login)s 4000(name)s 4567(\(according)s 5635(to)s 5867(the)s -6208(passw)s 2(ord)k 7161(entry\))s 7773(is)s 7976(a)s 4(v)k 6(ailable)k -8876(as)s 480 1578(in)m 723(the)s 1071(con\207guration)s 2404(language')s 13(s)k +6030(.)s +6178(The)s 6590(shell)s 7080(corresponding)s 8486(to)s 8708(that)s +480 3428(login)m 1023(name)s 1591(\(according)s 2659(to)s 2892(the)s +3233(passw)s 2(ord)k 4187(entry\))s 4799(is)s 5003(a)s 4(v)k 6(ailable)k +5904(as)s 6148(in)s 6384(the)s 6726(con\207guration)s 8052(language')s 13(s)k gsave -3478 1632 translate +480 3242 translate 0.6953 1.0000 scale 240 fnt31 0 -52(calling\211user\211shell)m grestore -5340(parameter)s 13(.)k 480 1170(If)m -710(no)s 1003(rele)s 6(v)k 6(ant)k 1820(passw)s 2(ord)k -2780(entry)s 3325(can)s 3714(be)s 3996(found)s 4613(then)s -5082(no)s 5375(service)s 6107(will)s 6533(be)s 6815(in)s 9(v)k 4(ok)k 2(ed.)k -0 715(\213)m 480(The)s 908(numeric)s 1744(v)s 6(alues)k +2342 3188(parameter)m 13(.)k 3447(If)s +3677(no)s 3970(rele)s 6(v)k 6(ant)k 4787(passw)s 2(ord)k +5747(entry)s 6292(can)s 6681(be)s 6963(found)s 7580(then)s +8049(no)s 8342(service)s 480 2948(will)m 906(be)s 1188(in)s 9(v)k 4(ok)k 2(ed.)k +0 2542(\213)m 480(The)s 908(numeric)s 1744(v)s 6(alues)k 2400(and)s 2804(te)s 3(xtual)k 3506(names)s 4168(for)s 4506(calling)s 5209(gid)s 5573(and)s 5977(supplementary)s 7439(group)s -8051(list)s 8402(are)s 0 52(0.61.4)m 4809(User)s 5320(service)s -6052(daemon)s 6867(and)s 7271(client)s 7861(speci\207cation)s +8051(list)s 8402(are)s 480 2302(a)m 4(v)k 6(ailable)k +1380(in)s 1615(the)s 1955(con\207guration)s 3280(language)s 4192(in)s +4427(the)s gsave +4766 2356 translate +0.6953 1.0000 scale +240 fnt31 0 -52(calling\211group)m +grestore +6119(parameter)s 7125(and)s +7521(are)s 7860(passed)s 8548(to)s 8778(the)s 480 2062(service)m +1212(in)s 1455(en)s 9(vironment)k 2715(v)s 6(ariables.)k +3735(If)s 3965(no)s 4258(name)s 4832(can)s 5221(be)s +5503(found)s 6120(for)s 6458(a)s 6624(numeric)s 7460(group)s +8072(to)s 8311(which)s 480 1822(the)m 828(calling)s 1531(process)s +2299(belongs)s 3095(then)s 3564(no)s 3857(service)s 4589(will)s +5015(be)s 5297(in)s 9(v)k 4(ok)k 2(ed.)k +0 1367(\213)m 480(The)s 908(name)s 1482(of)s 1753(the)s +2101(current)s 2837(w)s 2(orking)k 3686(directory)s 4602(in)s +4845(which)s 5487(the)s 5835(client)s 6425(w)s 2(as)k +6846(in)s 9(v)k 4(ok)k 2(ed)k 7661(is)s +7871(passed,)s 8616(if)s 480 1127(a)m 4(v)k 6(ailable)k +1388(and)s 1792(not)s 2158(hidden)s 2867(using)s gsave +3439 1181 translate +0.6953 1.0000 scale +240 fnt31 +0 -52(\211\211hidecwd)m +grestore +4340(,)s 4447(to)s 4686(the)s 5034(service)s +5766(program)s 6636(in)s 6879(the)s gsave +7227 1181 translate +0.6953 1.0000 scale +240 fnt31 0 -52(USERV_CWD)m + +grestore +8188(v)s 6(ariable.)k 480 887(This)m 946(grants)s 1570(no)s +1852(special)s 2560(access)s 3210(to)s 3438(that)s 3846(directory)s +4751(unless)s 5389(it)s 5571(is)s 5770(a)s 5925(subdirectory)s +7164(of)s 7424(a)s 7579(directory)s 8484(which)s 0 52(1.0.1)m +4809(User)s 5320(service)s 6052(daemon)s 6867(and)s 7271(client)s +7861(speci\207cation)s grestore grestore @@ -4992,101 +5047,65 @@ gsave gsave 1 LoutMargSet grestore -240 fnt84 8832 13842(19)m 240 fnt82 480 13251(a)m 4(v)k 6(ailable)k -1380(in)s 1615(the)s 1955(con\207guration)s 3280(language)s 4192(in)s -4427(the)s gsave -4766 13305 translate +240 fnt84 8832 13842(19)m 240 fnt82 480 13251(is)m 690(e)s 3(x)k 3(ecutable)k +1762(\(searchable\))s 2977(b)s 4(ut)k 3339(not)s 3705(readable)s +4570(by)s 4864(the)s 5212(service)s 5944(user)s 13(.)k +0 12794(\213)m 480(Settings)s 1301(speci\207ed)s 2209(by)s 2503(the)s +2851(caller)s 3440(using)s 4012(the)s gsave +4360 12848 translate 0.6953 1.0000 scale -240 fnt31 0 -52(calling\211group)m -grestore -6119(parameter)s 7125(and)s -7521(are)s 7860(passed)s 8548(to)s 8778(the)s 480 13011(service)m -1212(in)s 1455(en)s 9(vironment)k 2715(v)s 6(ariables.)k -480 12603(If)m 710(no)s 1003(name)s 1577(can)s 1966(be)s -2248(found)s 2865(for)s 3203(a)s 3369(numeric)s 4205(group)s -4817(to)s 5056(which)s 5698(the)s 6046(calling)s 6749(process)s -7517(belongs)s 8313(then)s 8782(no)s 480 12363(service)m 1212(will)s -1638(be)s 1920(in)s 9(v)k 4(ok)k 2(ed.)k -0 11957(\213)m 480(The)s 908(name)s 1482(of)s 1753(the)s -2101(current)s 2837(w)s 2(orking)k 3686(directory)s 4602(in)s -4845(which)s 5487(the)s 5835(client)s 6425(w)s 2(as)k -6846(in)s 9(v)k 4(ok)k 2(ed)k 7661(is)s -7871(passed,)s 8616(if)s 480 11717(a)m 4(v)k 6(ailable)k -1388(and)s 1792(not)s 2158(hidden)s 2867(using)s gsave -3439 11771 translate -0.6953 1.0000 scale -240 fnt31 -0 -52(\211\211hidecwd)m -grestore -4340(,)s 4447(to)s 4686(the)s 5034(service)s -5766(program)s 6636(in)s 6879(the)s gsave -7227 11771 translate -0.6953 1.0000 scale -240 fnt31 0 -52(USERV_CWD)m - -grestore -8188(v)s 6(ariable.)k 480 11477(This)m 946(grants)s 1570(no)s -1852(special)s 2560(access)s 3210(to)s 3438(that)s 3846(directory)s -4751(unless)s 5389(it)s 5571(is)s 5770(a)s 5925(subdirectory)s -7164(of)s 7424(a)s 7579(directory)s 8484(which)s 480 11237(is)m -690(e)s 3(x)k 3(ecutable)k 1762(\(searchable\))s 2977(b)s 4(ut)k -3339(not)s 3705(readable)s 4570(by)s 4864(the)s 5212(service)s -5944(user)s 13(.)k 0 10780(\213)m 480(Settings)s 1301(speci\207ed)s -2209(by)s 2503(the)s 2851(caller)s 3440(using)s 4012(the)s +240 fnt31 0 -52(\211\211defvar)m gsave -4360 10834 translate -0.6953 1.0000 scale -240 fnt31 0 -52(\211\211defvar)m gsave 1295 0 translate 1.4219 1.0000 scale 240 fnt83 0 -52(name)m grestore -2023(=)s -gsave +2023(=)s gsave 2167 0 translate 1.4219 1.0000 scale -240 fnt83 0 -52(value)m +240 fnt83 0 -52(value)m + grestore grestore -6432(option)s 7101(to)s 7340(the)s -7688(client)s 8278(are)s 480 10540(a)m 4(v)k 6(ailable)k -1388(in)s 1631(the)s 1979(con\207guration)s 3312(language)s 4232(as)s -4482(the)s 4830(corresponding)s gsave -6252 10594 translate +6432(option)s 7101(to)s 7340(the)s 7688(client)s 8278(are)s +480 12554(a)m 4(v)k 6(ailable)k 1388(in)s 1631(the)s +1979(con\207guration)s 3312(language)s 4232(as)s 4482(the)s 4830(corresponding)s +gsave +6252 12608 translate 0.6953 1.0000 scale 240 fnt31 0 -52(u\211)m gsave 288 0 translate 1.4219 1.0000 scale -240 fnt83 -0 -52(name)m +240 fnt83 0 -52(name)m grestore grestore -7018(parameters)s 8116(and)s 8520(are)s 480 10300(passed)m -1176(to)s 1415(the)s 1763(service)s 2495(program)s 3365(in)s -3608(en)s 9(vironment)k 4868(v)s 6(ariables)k gsave -5775 10354 translate +7018(parameters)s +8116(and)s 8520(are)s 480 12314(passed)m 1176(to)s 1415(the)s +1763(service)s 2495(program)s 3365(in)s 3608(en)s 9(vironment)k +4868(v)s 6(ariables)k gsave +5775 12368 translate 0.6953 1.0000 scale -240 fnt31 -0 -52(USERV_U_)m gsave +240 fnt31 0 -52(USERV_U_)m gsave 1152 0 translate 1.4219 1.0000 scale -240 fnt83 0 -52(name)m +240 fnt83 +0 -52(name)m grestore grestore -7082(.)s 0 9845(\213)m -480(If)s 710(the)s 1058(calling)s 1761(user)s 2219(is)s -2429(root)s 2874(or)s 3133(the)s 3481(same)s 4028(as)s -4278(the)s 4626(service)s 5358(user)s 5816(then)s 6285(options)s -7041(may)s 7507(be)s 7789(gi)s 6(v)k 3(en)k -8369(to)s 8608(the)s 480 9605(client)m 1070(which)s 1712(bypass)s -2415(the)s 2763(usual)s 3323(security)s 4133(features;)s 5000(in)s -5243(this)s 5639(case)s 6106(other)s 6657(information)s 7842(may)s -8308(pass)s 480 9365(between)m 1334(the)s 1682(caller)s 2271(and)s -2675(the)s 3023(service.)s 0 52(User)m 511(service)s 1243(daemon)s -2058(and)s 2462(client)s 3052(speci\207cation)s 8472(0.61.4)s +7082(.)s 0 11859(\213)m 480(If)s 710(the)s +1058(calling)s 1761(user)s 2219(is)s 2429(root)s 2874(or)s +3133(the)s 3481(same)s 4028(as)s 4278(the)s 4626(service)s +5358(user)s 5816(then)s 6285(options)s 7041(may)s 7507(be)s +7789(gi)s 6(v)k 3(en)k 8369(to)s 8608(the)s +480 11619(client)m 1070(which)s 1712(bypass)s 2415(the)s 2763(usual)s +3323(security)s 4133(features;)s 5000(in)s 5243(this)s 5639(case)s +6106(other)s 6657(information)s 7842(may)s 8308(pass)s 480 11379(between)m +1334(the)s 1682(caller)s 2271(and)s 2675(the)s 3023(service.)s +0 52(User)m 511(service)s 1243(daemon)s 2058(and)s 2462(client)s +3052(speci\207cation)s 8611(1.0.1)s grestore grestore @@ -5139,8 +5158,8 @@ grestore 2309(and)s 2935(notes)s 3765(on)s 4204(use)s grestore gsave -0 11649 translate -240 fnt82 9066 670 0 670 240 240 60 LoutGraphic +0 11650 translate +240 fnt82 9066 669 0 669 240 240 60 LoutGraphic gsave newpath 0 ysize 0.3 ft sub moveto xsize 0 rlineto @@ -5149,148 +5168,191 @@ xsize neg 0 rlineto closepath fill grestore 320 fnt84 -0 66(6.1.)m 628(Standard)s 1977(ser)s 3(vices)k 3110(and)s -3697(dir)s 5(ectory)k 5025(management)s -grestore -240 fnt82 0 11187(In)m -250(later)s 726(v)s 3(ersions)k 1565(of)s 1829(this)s -2219(speci\207cation)s 3477(standard)s 4339(service)s 5064(names)s 5720(and)s -6117(interf)s 2(aces)k 7087(for)s 7418(common)s 8306(services)s -0 10947(such)m 496(as)s 746(mail)s 1225(deli)s 6(v)k 3(ery)k -2053(and)s 2457(WWW)s 3193(CGI)s 3661(scripts)s 4335(will)s -4761(be)s 5043(speci\207ed.)s gsave -0 10593 translate +0 66(6.1.)m 628(Examples)s +grestore +240 fnt82 0 11188(The)m 428(companion)s +1549(package,)s gsave +2440 11242 translate +0.6953 1.0000 scale +240 fnt31 0 -52(userv\211utils)m +grestore +3541(,)s 3648(contains)s +4496(a)s 4662(selection)s 5568(of)s 5839(e)s 3(xample)k +6702(services,)s 7578(some)s 8139(of)s 8410(which)s 0 10948(are)m +347(useful)s 986(tools)s 1502(in)s 1745(their)s 2242(o)s 6(wn)k +2706(right.)s 3261(See)s 3662(the)s gsave +4010 11002 translate +0.6953 1.0000 scale +240 fnt31 0 -52(README)m + +grestore +4670(in)s 4913(its)s 5189(top-le)s 6(v)k 3(el)k +6084(directory)s 7000(for)s 7338(details.)s 9066 670 0 670 240 240 60 0 9924 LoutGr2 +newpath 0 ysize 0.3 ft sub moveto +xsize 0 rlineto +0 0.1 ft rlineto +xsize neg 0 rlineto +closepath fill +grestore +320 fnt84 0 66(6.2.)m +628(Standard)s 1977(ser)s 3(vices)k 3110(and)s 3697(dir)s 5(ectory)k +5025(management)s +grestore +0 9462(In)m 250(later)s 726(v)s 3(ersions)k +1565(of)s 1829(this)s 2219(speci\207cation)s 3477(standard)s 4339(service)s +5064(names)s 5720(and)s 6117(interf)s 2(aces)k 7087(for)s +7418(common)s 8306(services)s 0 9222(such)m 496(as)s 746(mail)s +1225(deli)s 6(v)k 3(ery)k 2053(and)s 2457(WWW)s +3193(CGI)s 3661(scripts)s 4335(may)s 4801(be)s 5083(speci\207ed.)s +gsave +0 8868 translate 0.6953 1.0000 scale 240 fnt31 0 -52(userv)m grestore -500 10539(-us)m -783(ing)s 1142(ap)s 1361(pli)s 1607(ca)s 1819(tions)s -2335(and)s 2739(sys)s 3036(tem)s 3454(ser)s 3732(vices)s -4274(which)s 4916(hide)s gsave -5384 10593 translate +500 8814(-us)m 783(ing)s 1142(ap)s +1361(pli)s 1607(ca)s 1819(tions)s 2334(and)s 2737(sys)s +3034(tem)s 3451(ser)s 3729(vices)s 4270(which)s 4911(hide)s +gsave +5379 8868 translate 0.6953 1.0000 scale 240 fnt31 0 -52(userv)m grestore -5944(be)s -6166(hind)s 6650(wrap)s 7121(per)s 7486(scripts)s 8160(may)s -0 10299(need)m 510(to)s 749(store)s 1269(in)s 1452(for)s -1730(ma)s 2022(tion)s 2451(in)s 2694(the)s 3042(user')s 13(s)k -3650(\207lespace)s 4542(to)s 4781(pre)s 5082(serv)s 3(e)k -5639(the)s 5987(cor)s 6292(rect)s 6709(place)s 7209(ment)s -7747(of)s 8018(the)s 8366(se)s 8561(-)s 0 10059(cu)m -221(ri)s 360(ty)s 600(perim)s 1157(iters.)s 1671(Such)s -2207(ap)s 2426(pli)s 2672(ca)s 2884(tions)s 3400(should)s -4097(usu)s 4425(al)s 4592(ly)s 4832(do)s 5125(so)s -5391(in)s 5634(a)s 5800(di)s 5980(rec)s 6264(to)s -6443(ry)s 6696(\(cre)s 7062(at)s 7234(ed)s 7518(by)s -7812(them\))s gsave -0 9873 translate -0.6953 1.0000 scale -240 fnt31 0 -52(~/.userv/.servdata/)m gsave -2736 0 translate +5938(be)s 6160(hind)s 6643(wrap)s +7114(per)s 7478(scripts)s 8151(may)s 8616(need)s 0 8574(to)m +225(store)s 731(in)s 914(for)s 1192(ma)s 1484(tion)s +1899(in)s 2128(the)s 2462(user')s 13(s)k 3056(\207lespace)s +3934(to)s 4159(pre)s 4460(serv)s 3(e)k 5003(the)s +5337(cor)s 5642(rect)s 6045(place)s 6545(ment)s 7069(of)s +7326(the)s 7660(se)s 7855(cu)s 8076(ri)s 8215(ty)s +8441(perim)s 8998(-)s 0 8334(iters.)m 514(Such)s 1050(ap)s +1269(pli)s 1515(ca)s 1727(tions)s 2243(should)s 2940(usu)s +3268(al)s 3435(ly)s 3675(do)s 3968(so)s 4234(in)s +4477(a)s 4643(di)s 4823(rec)s 5107(to)s 5286(ry)s +5539(\(cre)s 5905(at)s 6077(ed)s 6361(by)s 6655(them\))s +gsave +7261 8388 translate +0.6953 1.0000 scale +240 fnt31 0 -52(~/.userv/)m gsave +1296 0 translate 1.4219 1.0000 scale -240 fnt83 0 -52(service)m +240 fnt83 0 -52(service)m +grestore grestore +8823(,)s +0 8094(where)m 240 fnt83 640 8096(ser)m 937(vice)s 240 fnt82 +1374 8094(is)m 1584(the)s 1932(ser)s 2210(vice)s 2664(name)s +3238(or)s 3497(ap)s 3716(pli)s 3962(ca)s 4174(tion)s +4603(in)s 4846(ques)s 5276(tion.)s 0 7686(If)m 230(desired,)s +1027(a)s 1193(dot-directory)s 2494(inside)s gsave +3121 7740 translate +0.6953 1.0000 scale +240 fnt31 0 -52(~/.userv)m grestore -2563 9819(,)m 2670(where)s 240 fnt83 3310 9821(ser)m 3607(vice)s -240 fnt82 4044 9819(is)m 4254(the)s 4602(ser)s 4880(vice)s -5334(name)s 5908(or)s 6167(ap)s 6386(pli)s 6632(ca)s -6844(tion)s 7273(in)s 7516(ques)s 7946(tion.)s 0 9411(The)m -428(use)s 803(of)s 1074(a)s 1240(dot-directory)s 2541(inside)s +3982(may)s 4448(be)s 4730(used)s 5227(to)s 5466(a)s 4(v)k 4(oid)k +6048(the)s 6396(user)s 6854(becoming)s 7851(confused)s 8773(by)s +0 7446(\207nding)m 724(parts)s 1231(of)s 1493(a)s 1651(semi-pri)s 6(vile)k 3(ged)k +3190(application')s 13(s)k 4454(internal)s 5230(state)s 5714(in)s +5949(their)s 6437(\207lespace,)s 7372(and/or)s 8034(discourage)s 0 7206(them)m +538(from)s 1062(\207ddling)s 1860(with)s 2342(and)s 2746(thus)s +3196(corrupting)s 4245(it.)s 0 6798(Ho)m 6(we)k 6(v)k 3(er)k 9(,)k gsave -3168 9465 translate +960 6852 translate 0.6953 1.0000 scale -240 fnt31 0 -52(~/.userv)m +240 fnt31 0 -52(userv)m grestore -4029(will)s 4455(hopefully)s 5426(a)s 4(v)k 4(oid)k -6008(the)s 6356(user)s 6814(becoming)s 7811(confused)s 0 9171(by)m -294(\207nding)s 1026(parts)s 1541(of)s 1812(a)s 1978(semi-pri)s 6(vile)k 3(ged)k -3526(application')s 13(s)k 4798(internal)s 5582(state)s 6075(in)s -6318(their)s 6815(\207lespace,)s 7758(and)s 8162(or)s 0 8931(discourage)m -1092(them)s 1630(from)s 2154(\207ddling)s 2952(with)s 3434(and)s -3838(thus)s 4288(corrupting)s 5337(it.)s 5573(\(Note)s 6173(that)s -6591(such)s 7087(applications)s 8293(should)s 0 8691(of)m 271(course)s -951(not)s 1317(rely)s 1742(for)s 2080(their)s 2577(global)s -3230(inte)s 3(grity)k 4090(on)s 4387(the)s 4735(inte)s 3(grity)k -5595(of)s 5866(the)s 6214(data)s 6672(on)s 6969(the)s -7317(user')s 13(s)k 7925(side)s 8366(of)s 8637(the)s -0 8451(security)m 810(boundary)s 15(.\))k 9066 670 0 670 240 240 60 0 7427 LoutGr2 +1520(applications)s 2726(should)s 3423(of)s +3694(course)s 4374(not)s 4740(rely)s 5165(for)s 5503(their)s +6000(global)s 6653(inte)s 3(grity)k 7513(and)s 7917(security)s +8727(on)s 0 6558(the)m 348(inte)s 3(grity)k 1208(of)s +1479(the)s 1827(data)s 2285(on)s 2582(the)s 2930(user')s 13(s)k +3538(side)s 3979(of)s 4250(the)s 4598(security)s 5408(boundary)s 15(.)k +9066 670 0 670 240 240 60 0 5534 LoutGr2 newpath 0 ysize 0.3 ft sub moveto xsize 0 rlineto 0 0.1 ft rlineto xsize neg 0 rlineto closepath fill grestore -320 fnt84 0 66(6.2.)m -628(Reducing)s 1997(the)s 2497(number)s 3655(of)s 4018(absolutely)s -5474(pri)s 3(vileged)k 6908(subsystems)s +320 fnt84 0 66(6.3.)m 628(Reducing)s 1997(the)s 2497(number)s +3655(of)s 4018(absolutely)s 5474(pri)s 3(vileged)k 6908(subsystems)s + grestore -0 6965(Currently)m 970(most)s -1495(Unix)s 2029(systems)s 2837(ha)s 4(v)k 3(e)k +0 5072(Currently)m 970(most)s 1495(Unix)s 2029(systems)s 2837(ha)s 4(v)k 3(e)k 3338(man)s 3(y)k 3921(components)s 5129(which)s 5771(need)s 6281(to)s 6520(run)s 6896(as)s 7146(root,)s 7638(e)s 6(v)k 3(en)k -8138(though)s 0 6725(most)m 525(of)s 796(their)s 1293(acti)s 6(vity)k +8138(though)s 0 4832(most)m 525(of)s 796(their)s 1293(acti)s 6(vity)k 2057(does)s 2547(not)s 2913(strictly)s 3629(require)s 4361(it.)s 4597(This)s 5073(gi)s 6(v)k 3(es)k 5620(rise)s 6020(to)s 6259(a)s 6425(lar)s 4(ge)k 6954(and)s -7358(comple)s 3(x)k 8234(body)s 8768(of)s 0 6485(code)m +7358(comple)s 3(x)k 8234(body)s 8768(of)s 0 4592(code)m 508(which)s 1150(must)s 1675(be)s 1957(trusted)s 2665(with)s 3147(the)s 3495(security)s 4305(of)s 4576(the)s 4924(system.)s -0 6077(Using)m gsave -625 6131 translate +0 4184(If)m 230(the)s 3(y)k 693(were)s 1213(to)s +1452(use)s gsave +1827 4238 translate 0.6953 1.0000 scale 240 fnt31 0 -52(userv)m grestore -1185(man)s 3(y)k -1768(of)s 2039(these)s 2586(subsystems)s 3727(no)s 4020(longer)s -4691(need)s 5201(an)s 3(y)k 5598(unusual)s 6398(pri)s 6(vile)k 3(ge.)k +2327(,)s 2434(man)s 3(y)k +3017(of)s 3288(these)s 3835(sub)s 4161(sys)s 4458(tems)s +4960(w)s 2(ould)k 5615(no)s 5908(longer)s 6579(need)s +7089(an)s 3(y)k 7486(un)s 7723(usu)s 8051(al)s +8278(pri)s 6(v)k 8652(-)s 0 3944(i)m 60(le)s 3(ge.)k gsave -0 5723 translate +0 3590 translate 0.6953 1.0000 scale 240 fnt31 0 -52(cron)m grestore -455 5669(and)m gsave -853 5723 translate +455 3536(and)m gsave +853 3590 translate 0.6953 1.0000 scale 240 fnt31 0 -52(at)m grestore 1053(,)s gsave -1154 5723 translate +1154 3590 translate 0.6953 1.0000 scale 240 fnt31 0 -52(lpr)m grestore 1509(and)s 1907(the)s 2249(system')s 13(s)k 3117(mail)s 3591(transfer)s 4373(agent)s 4945(\()s gsave -5018 5723 translate +5018 3590 translate 0.6953 1.0000 scale 240 fnt31 0 -52(sendmail)m grestore 5819(,)s gsave -5921 5723 translate +5921 3590 translate 0.6953 1.0000 scale 240 fnt31 0 -52(smail)m grestore 6421(,)s gsave -6522 5723 translate +6522 3590 translate 0.6953 1.0000 scale 240 fnt31 0 -52(exim)m grestore 6976(or)s 7229(the)s 7572(lik)s 2(e\))k 8050(all)s 8337(f)s 2(all)k -8701(into)s 0 5429(this)m 396(cate)s 3(gory)k 15(.)k -9066 670 0 670 240 240 60 0 4405 LoutGr2 +8701(into)s 0 3296(this)m 396(cate)s 3(gory)k 15(,)k +1308(though)s gsave +2031 3350 translate +0.6953 1.0000 scale +240 fnt31 0 -52(userv)m +grestore +2531(-based)s 3213(v)s 3(ersions)k +4058(of)s 4329(these)s 4876(programs)s 5830(are)s 6177(not)s +6543(currently)s 7459(a)s 4(v)k 6(ailable.)k 9066 670 0 670 240 240 60 0 2272 LoutGr2 newpath 0 ysize 0.3 ft sub moveto xsize 0 rlineto 0 0.1 ft rlineto xsize neg 0 rlineto closepath fill grestore -320 fnt84 0 66(6.3.)m 628(Do)s 1092(not)s 1615(gi)s 3(v)k 3(e)k +320 fnt84 +0 66(6.4.)m 628(Do)s 1092(not)s 1615(gi)s 3(v)k 3(e)k 2234(away)s 3019(excessi)s 3(v)k 3(e)k 4312(pri)s 3(vilege)k 5571(to)s gsave 5910 139 translate @@ -5300,57 +5362,98 @@ grestore 6577(-using)s 7484(facilities)s grestore -0 3943(There)m 613(is)s 823(a)s 989(danger)s 1700(that)s +0 1810(There)m 613(is)s 823(a)s 989(danger)s 1700(that)s 2118(people)s 2812(reimplementing)s 4378(the)s 4726(f)s 2(acilities)k 5595(I)s 5730(mention)s 6571(abo)s 3(v)k 3(e)k 7193(using)s gsave -7765 3997 translate +7765 1864 translate 0.6953 1.0000 scale 240 fnt31 0 -52(userv)m grestore -8325(will)s 0 3703(discard)m +8325(will)s 0 1570(discard)m 731(much)s 1303(of)s 1557(the)s 1888(security)s 2680(bene\207t)s 3374(by)s 3651(using)s 4206(a)s 4355(nai)s 6(v)k 3(e)k 4902(implementation)s 6442(technique.)s 7459(This)s 7918(will)s 8326(become)s -0 3463(clearer)m 708(with)s 1190(an)s 1473(e)s 3(xample:)k -0 3055(Consider)m 924(the)s gsave -1272 3109 translate +0 1330(clearer)m 708(with)s 1190(an)s 1473(e)s 3(xample:)k +0 922(Consider)m 924(the)s gsave +1272 976 translate 0.6953 1.0000 scale 240 fnt31 0 -52(lpr)m grestore 1632(program.)s 2546(In)s 2802(current)s 3538(systems)s 4346(this)s 4742(needs)s 5338(to)s 5577(ha)s 4(v)k 3(e)k 6078(an)s -6361(absolutely)s 7398(pri)s 6(vile)k 3(ged)k 0 2815(component)m -1124(in)s 1367(order)s 1931(to)s 2170(support)s 2948(delayed)s -3750(printing)s 4560(without)s 5351(cop)s 2(ying:)k 6227(when)s -6803(the)s 7151(user)s 7609(queues)s 8325(a)s 8491(\207le)s -0 2575(to)m 239(be)s 521(printed)s 1256(the)s 1604(\207lename)s -2483(is)s 2693(stored)s 3335(in)s 3578(the)s 3926(print)s -4437(queue,)s 5116(rather)s 5732(than)s 6201(a)s 6367(cop)s 2(y)k +6361(absolutely)s 7398(pri)s 6(vile)k 3(ged)k 0 52(1.0.1)m +4809(User)s 5320(service)s 6052(daemon)s 6867(and)s 7271(client)s +7861(speci\207cation)s +grestore + +grestore + +pgsave restore +showpage + +%%Page: 21 21 +%%BeginPageSetup +%%PageResources: font Times-Roman +%%+ font Times-Bold +%%+ font Courier-Bold +%%+ font Times-Italic +/pgsave save def +0.0500 dup scale 10 setlinewidth +%%EndPageSetup +gsave +0 0 translate +240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic +gsave +LoutPageSet +grestore +gsave +0 16840 translate +0.0000 rotate + +grestore + +grestore +gsave +0 16840 translate +0.0000 rotate +gsave +1417 -15423 translate +240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic +gsave +1 LoutMargSet +grestore +240 fnt84 8839 13842(21)m 240 fnt82 0 13254(component)m 1124(in)s +1367(order)s 1931(to)s 2170(support)s 2948(delayed)s 3750(printing)s +4560(without)s 5351(cop)s 2(ying:)k 6227(when)s 6803(the)s +7151(user)s 7609(queues)s 8325(a)s 8491(\207le)s 0 13014(to)m +239(be)s 521(printed)s 1256(the)s 1604(\207lename)s 2483(is)s +2693(stored)s 3335(in)s 3578(the)s 3926(print)s 4437(queue,)s +5116(rather)s 5732(than)s 6201(a)s 6367(cop)s 2(y)k 6885(of)s 7156(it,)s 7395(and)s 7799(the)s 8147(printer)s -0 2335(daemon)m 813(accesses)s 1671(the)s 2016(\207le)s 2375(directly)s +0 12774(daemon)m 813(accesses)s 1671(the)s 2016(\207le)s 2375(directly)s 3155(when)s 3729(it)s 3918(is)s 4126(ready)s 4708(to)s 4945(print)s 5453(the)s 5799(job)s 9(.)k 6197(In)s 6451(order)s 7012(that)s 7428(the)s 7773(user)s 8229(can)s -8615(print)s 0 2095(\207les)m 449(which)s 1091(are)s 1438(not)s +8615(print)s 0 12534(\207les)m 449(which)s 1091(are)s 1438(not)s 1804(w)s 2(orld-readable)k 3304(the)s 3652(daemon)s 4467(is)s 4677(gi)s 6(v)k 3(en)k 5257(root)s 5702(pri)s 6(vile)k 3(ge)k 6598(so)s 6864(that)s 7282(it)s 7474(can)s 7863(open)s -8386(the)s 8734(\207le)s 0 1855(in)m 243(the)s 591(conte)s 3(xt)k +8386(the)s 8734(\207le)s 0 12294(in)m 243(the)s 591(conte)s 3(xt)k 1352(of)s 1623(the)s 1971(user)s 9(,)k 2467(rather)s -3083(than)s 3552(its)s 3828(o)s 6(wn.)k 0 1447(A)m +3083(than)s 3552(its)s 3828(o)s 6(wn.)k 0 11886(A)m 212(simple-minded)s 1686(approach)s 2602(to)s 2823(con)s 9(v)k 3(erting)k 3868(this)s 4246(scheme)s 5001(to)s 5222(use)s gsave -5579 1501 translate +5579 11940 translate 0.6953 1.0000 scale 240 fnt31 0 -52(userv)m grestore 6120(might)s 6720(in)s 9(v)k 4(olv)k 3(e)k -7460(gi)s 6(ving)k 8101(the)s 8430(printer)s 0 1207(daemon)m +7460(gi)s 6(ving)k 8101(the)s 8430(printer)s 0 11646(daemon)m 811(\(the)s gsave -1233 1261 translate +1233 11700 translate 0.6953 1.0000 scale 240 fnt31 0 -52(lp)m grestore @@ -5358,295 +5461,224 @@ grestore 2354(ability)s 3013(to)s 3248(read)s 3712(the)s 4055(\207le)s 4412(by)s 4701(allo)s 6(wing)k 5581(them)s 6114(to)s 6349(run)s gsave -6720 1261 translate +6720 11700 translate 0.6953 1.0000 scale 240 fnt31 0 -52(cat)m grestore 7076(\(or)s 7409(a)s -7570(special-purpose)s 0 967(\207le-reading)m 1140(program\))s 2063(as)s 2299(an)s 3(y)k +7570(special-purpose)s 0 11406(\207le-reading)m 1140(program\))s 2063(as)s 2299(an)s 3(y)k 2681(user)s 13(.)k 3155(The)s gsave -3569 1021 translate +3569 11460 translate 0.6953 1.0000 scale 240 fnt31 0 -52(lpr)m grestore 3914(program)s 4769(w)s 2(ould)k 5410(use)s 5770(a)s gsave -5922 1021 translate +5922 11460 translate 0.6953 1.0000 scale 240 fnt31 0 -52(userv)m grestore 6467(service)s 7184(to)s 7409(store)s -7914(the)s 8247(\207lename)s 0 727(in)m 243(the)s 591(printer)s +7914(the)s 8247(\207lename)s 0 11166(in)m 243(the)s 591(printer)s 1287(daemon')s 13(s)k 2255(queues,)s 3027(and)s 3431(the)s 3779(daemon)s 4594(w)s 2(ould)k 5249(read)s 5718(the)s 6066(\207le)s 6427(later)s 6910(when)s 7486(it)s 7678(felt)s -8055(lik)s 2(e)k 8467(it.)s 0 52(0.61.4)m 4809(User)s -5320(service)s 6052(daemon)s 6867(and)s 7271(client)s 7861(speci\207cation)s - -grestore - -grestore - -pgsave restore -showpage - -%%Page: 21 21 -%%BeginPageSetup -%%PageResources: font Times-Roman -%%+ font Times-Bold -%%+ font Courier-Bold -%%+ font Times-Italic -/pgsave save def -0.0500 dup scale 10 setlinewidth -%%EndPageSetup -gsave -0 0 translate -240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic -gsave -LoutPageSet -grestore -gsave -0 16840 translate -0.0000 rotate - -grestore - -grestore -gsave -0 16840 translate -0.0000 rotate -gsave -1417 -15423 translate -240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic -gsave -1 LoutMargSet -grestore -240 fnt84 8839 13842(21)m 240 fnt82 0 13254(Ho)m 6(we)k 6(v)k 3(er)k 9(,)k +8055(lik)s 2(e)k 8467(it.)s 0 10758(Ho)m 6(we)k 6(v)k 3(er)k 9(,)k 960(this)s 1356(w)s 2(ould)k 2011(allo)s 6(w)k 2590(the)s 2938(printer)s 3634(daemon)s 4449(to)s 4688(read)s 5157(an)s 3(y)k 5554(\207le)s 5915(on)s 6212(the)s -6560(system,)s 7331(whether)s 8161(or)s 8420(not)s 0 13014(someone)m +6560(system,)s 7331(whether)s 8161(or)s 8420(not)s 0 10518(someone)m 907(had)s 1311(ask)s 2(ed)k 1912(for)s 2250(it)s 2442(to)s 2681(be)s 2963(printed.)s 3744(Since)s 4331(man)s 3(y)k 4914(\207les)s 5363(will)s 5789(contain)s 6550(passw)s 2(ords)k -7596(and)s 8000(other)s 0 12774(security-critical)m 1551(information)s 2736(this)s +7596(and)s 8000(other)s 0 10278(security-critical)m 1551(information)s 2736(this)s 3132(is)s 3342(nearly)s 3993(as)s 4243(bad)s 4647(as)s 4897(gi)s 6(ving)k 5556(the)s 5904(daemon)s 6719(root)s -7164(access)s 7825(in)s 8068(the)s 8416(\207rst)s 0 12534(place.)m +7164(access)s 7825(in)s 8068(the)s 8416(\207rst)s 0 10038(place.)m 608(An)s 3(y)k 1072(security)s 1882(holes)s 2438(in)s 2681(the)s 3029(print)s 3540(serv)s 3(er)k 4180(which)s 4822(allo)s 6(w)k 5401(a)s 5567(user)s 6025(to)s 6264(e)s 3(x)k 3(ecute)k 7044(commands)s 8132(as)s 8382(the)s gsave -8730 12588 translate +8730 10092 translate 0.6953 1.0000 scale 240 fnt31 0 -52(lp)m grestore -0 12294(user)m 458(will)s +0 9798(user)m 458(will)s 884(gi)s 6(v)k 3(e)k 1343(the)s 1691(user)s 2149(the)s 2497(ability)s 3161(to)s 3400(read)s 3869(an)s 3(y)k -4266(\207le)s 4627(on)s 4924(the)s 5272(system.)s 0 11886(Instead,)m +4266(\207le)s 4627(on)s 4924(the)s 5272(system.)s 0 9390(Instead,)m 790(it)s 975(is)s 1178(necessary)s 2153(to)s 2385(k)s 2(eep)k 2881(a)s 3040(record)s 3700(of)s 3964(which)s 4599(\207les)s 5040(the)s 5381(daemon)s 6189(has)s 6552(been)s 7053(ask)s 2(ed)k -7647(to)s 7879(print)s 240 fnt83 8382 11888(outside)m 240 fnt82 -0 11646(the)m 348(control)s 1080(of)s 1351(the)s 1699(print)s +7647(to)s 7879(print)s 240 fnt83 8382 9392(outside)m 240 fnt82 +0 9150(the)m 348(control)s 1080(of)s 1351(the)s 1699(print)s 2210(daemon.)s 3072(This)s 3548(record)s 4216(could)s 4806(be)s 5088(k)s 2(ept)k 5558(by)s 5852(a)s 6018(ne)s 6(w)k -6465(root-pri)s 6(vile)k 3(ged)k 7947(component,)s 0 11406(b)m 4(ut)k +6465(root-pri)s 6(vile)k 3(ged)k 7947(component,)s 0 8910(b)m 4(ut)k 352(this)s 737(is)s 936(not)s 1291(necessary:)s 2315(the)s 2652(record)s 3309(of)s 3569(which)s 4200(\207les)s 4638(a)s 4794(user)s 5241(has)s 5600(ask)s 2(ed)k 6190(to)s 6418(be)s 6689(printed)s 7413(can)s 7791(be)s 8062(k)s 2(ept)k -8521(under)s 0 11166(the)m 348(control)s 1080(of)s 1351(the)s +8521(under)s 0 8670(the)m 348(control)s 1080(of)s 1351(the)s 1699(user)s 2157(in)s 2400(question.)s 3315(The)s 3743(submission)s 4877(program)s gsave -5747 11220 translate +5747 8724 translate 0.6953 1.0000 scale 240 fnt31 0 -52(lpr)m grestore 6107(will)s 6533(mak)s 2(e)k 7105(a)s 7271(record)s 7939(in)s 8182(an)s 8465(area)s -0 10926(under)m 605(the)s 953(user')s 13(s)k 1561(control)s +0 8430(under)m 605(the)s 953(user')s 13(s)k 1561(control)s 2293(before)s 2959(communicating)s 4500(with)s 4982(the)s 5330(print)s 5841(serv)s 3(er)k 9(,)k 6519(and)s 6923(the)s 7271(print)s 7782(serv)s 3(er)k 8422(w)s 2(ould)k -0 10686(be)m 279(gi)s 6(v)k 3(en)k 855(the)s +0 8190(be)m 279(gi)s 6(v)k 3(en)k 855(the)s 1199(ability)s 1859(to)s 2094(run)s 2466(a)s 2628(special)s 3342(\207le-reading)s 4493(program)s 5359(which)s 5997(w)s 2(ould)k 6648(only)s 7124(allo)s 6(w)k 7699(\207les)s 8144(to)s -8379(be)s 8657(read)s 0 10446(which)m 642(were)s 1162(listed)s +8379(be)s 8657(read)s 0 7950(which)m 642(were)s 1162(listed)s 1737(in)s 1980(the)s 2328(user')s 13(s)k 2936(\207le)s 3297(of)s 3568(things)s 4204(the)s 3(y')k 12(d)k -4858(ask)s 2(ed)k 5459(to)s 5698(print.)s 0 10038(No)m 6(w)k +4858(ask)s 2(ed)k 5459(to)s 5698(print.)s 0 7542(No)m 6(w)k 502(security)s 1300(holes)s 1844(in)s 2075(most)s 2588(of)s 2846(the)s 3182(printing)s 3980(system)s 4692(do)s 4973(not)s 5327(critically)s 6215(af)s 6(fect)k 6799(the)s 7135(security)s -7933(of)s 8192(the)s 8527(entire)s 0 9798(system:)m 770(the)s 3(y)k +7933(of)s 8192(the)s 8527(entire)s 0 7302(system:)m 770(the)s 3(y)k 1233(only)s 1713(allo)s 6(w)k 2292(the)s 2640(attack)s 2(er)k 3453(to)s 3692(read)s 4161(and)s 4565(interfere)s 5428(with)s 5910(print)s 6421(jobs.)s 6924(Bugs)s 7468(in)s 7711(the)s -8059(programs)s 0 9558(run)m 373(by)s 664(the)s 1009(print)s +8059(programs)s 0 7062(run)m 373(by)s 664(the)s 1009(print)s 1517(serv)s 3(er)k 2154(to)s 2390(read)s 2856(users')s 3456(\207les)s 3902(\(and)s 4382(to)s 4618(remo)s 3(v)k 3(e)k 5382(entries)s 6066(from)s 6587(the)s 6932(list)s 7280(of)s -7548(\207les)s 7994(when)s 8567(it)s 8756(has)s 0 9318(done)m +7548(\207les)s 7994(when)s 8567(it)s 8756(has)s 0 6822(done)m 522(with)s 1004(them\))s 1610(will)s 2036(still)s 2448(be)s 2730(serious,)s 3514(b)s 4(ut)k 3876(this)s 4272(program)s -5142(can)s 5531(be)s 5813(quite)s 6347(simple.)s 0 8910(Similar)m +5142(can)s 5531(be)s 5813(quite)s 6347(simple.)s 0 6414(Similar)m 762(considerations)s 2194(apply)s 2780(to)s 3019(man)s 3(y)k gsave -3602 8964 translate +3602 6468 translate 0.6953 1.0000 scale 240 fnt31 0 -52(userv)m grestore 4102(-based)s 4784(v)s 3(ersions)k 5629(of)s 5900(f)s 2(acilities)k 6769(which)s 7411(currently)s -8327(run)s 0 8670(as)m 250(root.)s 0 8262(It)m 198(is)s +8327(run)s 0 6174(as)m 250(root.)s 0 5766(It)m 198(is)s 401(debatable)s 1366(whether)s 2189(the)s 2530(user)s 4(-controlled)k 4023(state)s 4509(should)s 5199(be)s 5474(k)s 2(ept)k 5937(in)s 6173(the)s 6514(user')s 13(s)k 7115(\207lespace)s -8000(\(in)s 8315(dot\207les,)s 0 8022(say\))m 440(or)s 692(k)s 2(ept)k +8000(\(in)s 8315(dot\207les,)s 0 5526(say\))m 440(or)s 692(k)s 2(ept)k 1155(in)s 1391(a)s 1550(separate)s 2381(area)s 2831(set)s 3149(aside)s 3688(for)s 4019(the)s 4360(purpose;)s 5223(ho)s 6(we)k 6(v)k 3(er)k 9(,)k 6123(using)s 6688(the)s 7029(user')s 13(s)k 7630(home)s -8210(directory)s 0 7782(\(and)m 468(probably)s 1357(creating)s 2164(a)s -2314(separate)s 3137(subdirectory)s 4370(of)s 4626(it)s 4802(as)s -5037(a)s 5187(dot\207le)s 5839(to)s 6062(contain)s 6808(man)s 3(y)k -7375(subsystems')s 8561(state\))s 0 7542(has)m 370(fe)s 6(wer)k -967(implications)s 2199(for)s 2537(the)s 2885(rest)s 3289(of)s -3560(the)s 3908(system)s 4632(and)s 5036(mak)s 2(es)k -5696(it)s 5888(entirely)s 6671(clear)s 7194(where)s 7834(the)s -8182(security)s 0 7302(boundaries)m 1101(lie.)s 9066 670 0 670 240 240 60 0 6278 LoutGr2 +8210(directory)s 0 5286(\(and)m 483(possibly)s 1335(creating)s 2157(a)s +2323(separate)s 3161(subdirectory)s 4410(of)s 4681(it)s 4873(as)s +5123(a)s 5289(dot\207le)s 5956(to)s 6195(contain)s 6956(subsystem)s +8013(state\))s 0 5046(has)m 370(fe)s 6(wer)k 967(implications)s +2199(for)s 2537(the)s 2885(rest)s 3289(of)s 3560(the)s +3908(system)s 4632(and)s 5036(mak)s 2(es)k 5696(it)s +5888(entirely)s 6671(clear)s 7194(where)s 7834(the)s 8182(security)s +0 4806(boundaries)m 1101(lie.)s 9066 670 0 670 240 240 60 0 3782 LoutGr2 newpath 0 ysize 0.3 ft sub moveto xsize 0 rlineto 0 0.1 ft rlineto xsize neg 0 rlineto closepath fill grestore -320 fnt84 0 66(6.4.)m -gsave +320 fnt84 0 66(6.5.)m gsave 628 139 translate 0.6953 1.0000 scale -320 fnt31 0 -70(userv)m -grestore -1375(is)s 1659(not)s 2182(a)s -2419(r)s 5(eplacement)k 4178(f)s 8(or)k gsave -4655 139 translate -0.6953 1.0000 scale 320 fnt31 -0 -70(really)m -grestore -5536(and)s gsave -6123 139 translate -0.6953 1.0000 scale -320 fnt31 0 -70(sudo)m -grestore - +0 -70(userv)m grestore +1375(can)s 1929(often)s 2695(r)s 5(eplace)k gsave -0 5870 translate +3758 139 translate 0.6953 1.0000 scale -240 fnt31 -0 -52(userv)m +320 fnt31 0 -70(sudo)m grestore -560 5816(is)m 770(not)s 1136(intended)s 2018(as)s -2268(a)s 2434(general-purpose)s 4030(system)s 4754(administration)s 6191(tool)s -6618(with)s 7100(which)s 7742(system)s 0 5576(administrators)m 1398(can)s -1767(e)s 3(x)k 3(ecute)k 2528(pri)s 6(vile)k 3(ged)k -3526(programs)s 4461(when)s 5017(the)s 3(y)k 5461(need)s -5951(to.)s 6222(It)s 6407(is)s 6598(unsuitable)s 7617(for)s -7936(this)s 8312(purpose)s 0 5336(precisely)m 916(because)s 1729(it)s -1921(enforces)s 2781(a)s 2947(strong)s 3598(separation)s 4637(between)s -5491(the)s 5839(calling)s 6542(and)s 6946(the)s 7294(called)s -7922(program,)s 0 5096(which)m 642(is)s 852(undesirable)s 2010(in)s -2253(this)s 2649(conte)s 3(xt.)k 0 4688(Its)m 289(f)s 2(acilities)k -1158(for)s 1496(restricting)s 2516(acti)s 6(vities)k 3422(to)s -3661(running)s 4459(certain)s 5165(programs)s 6119(may)s 6585(at)s -6817(\207rst)s 7248(glance)s 7928(seem)s 8479(to)s 0 4420(pro)m 3(vide)k -769(similar)s 1476(functionality)s 2736(to)s gsave -2960 4474 translate -0.6953 1.0000 scale -240 fnt31 0 -52(sudo)m - -grestore -153 fnt82 3360 4509(1)m 240 fnt82 3420 4420(.)m 3509(Ho)s 6(we)k 6(v)k 3(er)k 9(,)k -4454(the)s 4787(separation)s 5811(mentioned)s 6864(abo)s 3(v)k 3(e)k -7471(is)s 7666(a)s 7817(problem)s 8659(here)s 0 4180(too,)m -413(particular)s 1387(for)s 1725(interaction)s 2803(-)s 2931(it)s -3123(can)s 3512(be)s 3794(hard)s 4277(for)s 4615(a)s -gsave -4781 4234 translate +4292(,)s 4444(b)s 6(ut)k +4978(not)s gsave +5501 139 translate 0.6953 1.0000 scale -240 fnt31 0 -52(userv)m +320 fnt31 0 -70(really)m grestore -5341(service)s 6073(program)s 6943(to)s -7182(interact)s 7957(with)s 8439(its)s 8714(real)s 0 3940(caller)m -589(or)s 848(the)s 1196(user)s 1654(in)s 1897(question.)s -9066 670 0 670 240 240 60 0 2916 LoutGr2 -newpath 0 ysize 0.3 ft sub moveto -xsize 0 rlineto -0 0.1 ft rlineto -xsize neg 0 rlineto -closepath fill -grestore -320 fnt84 0 66(6.5.)m 628(Don't)s 1488(gi)s 3(v)k 3(e)k -2107(access)s 3013(to)s 3352(general-pur)s 3(pose)k 5640(utilities)s grestore -0 2454(Do)m 346(not)s 712(specify)s 1456(general)s 2214(purpose)s -3028(programs)s 3982(lik)s 2(e)k gsave -4394 2508 translate +gsave +0 3374 translate 0.6953 1.0000 scale -240 fnt31 0 -52(mv)m +240 fnt31 0 -52(userv)m grestore -4654(or)s gsave -4913 2508 translate +559 3320(is)m 768(not)s 1133(in)s 1316(tend)s 1726(ed)s +2009(as)s 2258(a)s 2423(general-)s 3194(purpose)s 4007(sys)s +4304(tem)s 4721(ad)s 4945(min)s 5314(is)s 5464(tra)s +5715(tion)s 6143(tool)s 6569(with)s 7050(which)s 7691(sys)s +7988(tem)s 8405(ad)s 8629(min)s 8998(-)s 0 3080(is)m +150(tra)s 401(tors)s 801(can)s 1181(e)s 3(x)k +1399(e)s 1501(cute)s 1946(ar)s 2131(bi)s 2311(trary)s +2806(pro)s 3118(grams)s 3744(lik)s 2(e)k 4147(te)s 3(xt)k +4553(ed)s 4777(i)s 4837(tors)s 5236(as)s 5477(root)s +5913(\(or)s 6242(oth)s 6545(er)s 6781(sys)s 7078(tem)s +7487(users\))s 8097(when)s 8663(the)s 3(y)k 0 2840(need)m +501(to.)s 782(It)s 978(is)s 1179(un)s 1416(suit)s +1761(able)s 2205(for)s 2534(this)s 2921(pur)s 3240(pose)s +3726(pre)s 4027(cise)s 4394(ly)s 4625(be)s 4847(cause)s +5424(it)s 5607(en)s 5830(forces)s 6455(a)s 6612(strong)s +7254(sep)s 7566(a)s 7672(ra)s 7857(tion)s 8276(be)s +8498(tween)s 0 2600(the)m 348(call)s 687(ing)s 1046(and)s +1450(the)s 1798(called)s 2426(pro)s 2738(gram,)s 3336(which)s +3978(is)s 4188(un)s 4425(de)s 4647(sir)s 4885(able)s +5339(in)s 5582(this)s 5978(con)s 6321(te)s 3(xt.)k +0 2192(Ho)m 6(we)k 6(v)k 3(er)k 9(,)k +951(its)s 1217(use)s 1582(when)s 2148(restricted)s 3084(to)s +3313(running)s 4101(particular)s 5065(programs)s 6009(in)s 6243(particular)s +7207(w)s 2(ays)k 7738(is)s 7938(v)s 3(ery)k +8404(similar)s 0 1924(to)m 239(man)s 3(y)k 822(common)s +1717(uses)s 2180(of)s gsave +2451 1978 translate 0.6953 1.0000 scale -240 fnt31 0 -52(cat)m +240 fnt31 0 -52(sudo)m grestore -5273(in)s gsave -5516 2508 translate +153 fnt82 +2851 2013(1)m 240 fnt82 2911 1924(.)m gsave +3015 1978 translate 0.6953 1.0000 scale -240 fnt31 -0 -52(execute\211)m +240 fnt31 0 -52(userv)m + grestore -6377(directi)s 6(v)k 3(es)k 7347(without)s -8138(careful)s 0 2214(thought)m 792(about)s 1384(their)s 1881(ar)s 4(guments,)k -2980(and)s 3384(certainly)s 4273(not)s 4639(if)s gsave -4856 2268 translate +3575(is)s 3785(generally)s 4728(much)s 5317(better)s 5920(than)s +6389(restricted)s gsave +7334 1978 translate 0.6953 1.0000 scale -240 fnt31 -0 -52(no\211suppress\211args)m +240 fnt31 0 -52(sudo)m grestore -6518(is)s 6728(speci\207ed.)s 7682(If)s 7912(you)s -8327(do)s 8620(so)s 8886(it)s 0 1974(will)m 426(gi)s 6(v)k 3(e)k -885(the)s 1233(caller)s 1822(much)s 2411(more)s 2958(pri)s 6(vilige)k -3817(than)s 4286(you)s 4701(probably)s 5606(intend.)s 0 1566(It)m -205(is)s 415(a)s 581(shame)s 1248(that)s 1666(I)s -1801(ha)s 4(v)k 3(e)k 2302(to)s 2541(say)s -2914(this)s 3310(here,)s 3828(b)s 4(ut)k 4190(ine)s 3(xperienced)k -5586(administrators)s 7003(ha)s 4(v)k 3(e)k 7504(made)s -8078(similar)s 1134 0 0 0 240 240 60 0 1178 LoutGr2 +7734(,)s 7841(because)s +8654(it)s 0 1684(protects)m 796(the)s 1132(called)s 1748(program)s +2607(much)s 3184(more)s 3719(strongly)s 4545(from)s 5058(bad)s +5450(en)s 9(vironmental)k 6865(conditions)s 7902(set)s 8215(up)s +8496(by)s 8778(the)s 1134 0 0 0 240 240 60 0 1177 LoutGr2 0 0 moveto xsize 0 lineto stroke grestore grestore -122 fnt82 0 983(1)m gsave -58 956 translate +122 fnt82 0 982(1)m gsave +58 955 translate 0.6953 1.0000 scale -192 fnt31 0 -42(sudo)m - +192 fnt31 +0 -42(sudo)m grestore -192 fnt82 425 913(is)m 593(a)s 726(program)s 1422(which)s -1936(allo)s 4(ws)k 2472(users)s 2905(to)s 3097(e)s 2(x)k 2(ecute)k -3723(certain)s 4289(programs)s 5052(as)s 5252(root,)s 5646(according)s -6444(to)s 6636(con\207guration)s 7703(\207les)s 8062(speci\207ed)s 8789(by)s -0 683(the)m 279(system)s 858(administrator)s 10(.)k 240 fnt82 -0 52(User)m 511(service)s 1243(daemon)s 2058(and)s 2462(client)s -3052(speci\207cation)s 8472(0.61.4)s +192 fnt82 425 912(is)m 593(a)s 726(program)s +1422(which)s 1936(allo)s 4(ws)k 2472(users)s 2905(to)s +3097(e)s 2(x)k 2(ecute)k 3723(certain)s 4289(programs)s +5052(as)s 5252(root,)s 5646(according)s 6444(to)s 6636(con\207guration)s +7703(\207les)s 8062(speci\207ed)s 8789(by)s 0 682(the)m 279(system)s +858(administrator)s 10(.)k 240 fnt82 0 52(User)m 511(service)s +1243(daemon)s 2058(and)s 2462(client)s 3052(speci\207cation)s 8611(1.0.1)s + grestore grestore @@ -5684,15 +5716,148 @@ gsave gsave 0 LoutMargSet grestore -240 fnt84 0 13842(22)m 240 fnt82 0 13254(mistak)m 2(es)k -885(with)s 1367(programs)s 2321(lik)s 2(e)k gsave -2733 13308 translate +240 fnt84 0 13842(22)m 240 fnt82 0 13254(caller)m 13(.)k +604(Most)s 1140(programs)s 2077(that)s 2479(one)s 2864(might)s +3466(w)s 2(ant)k 3972(to)s 4195(run)s 4554(via)s +4890(restricted)s gsave +5818 13308 translate 0.6953 1.0000 scale -240 fnt31 -0 -52(sudo)m +240 fnt31 0 -52(sudo)m grestore -3133(.)s 0 52(0.61.4)m 4809(User)s 5320(service)s -6052(daemon)s 6867(and)s 7271(client)s 7861(speci\207cation)s +6218(,)s 6309(ha)s 4(v)k 3(e)k +6793(not)s 7143(been)s 7635(designed)s 8528(to)s 8750(run)s +0 13014(in)m 243(a)s 409(partially)s 1258(hostile)s 1951(en)s 9(vironment.)k +gsave +3255 13068 translate +0.6953 1.0000 scale +240 fnt31 0 -52(userv)m +grestore +3815(allo)s 6(ws)k 4484(these)s +5031(programs)s 5985(to)s 6224(be)s 6506(run)s 6882(in)s +7125(a)s 7291(safer)s 7814(en)s 9(vironment)k 0 12774(and)m +404(should)s 1101(be)s 1383(used)s 1880(instead.)s 9066 671 0 671 240 240 60 0 11749 LoutGr2 +newpath 0 ysize 0.3 ft sub moveto +xsize 0 rlineto +0 0.1 ft rlineto +xsize neg 0 rlineto +closepath fill +grestore +320 fnt84 +0 66(6.6.)m 628(Err)s 5(or)k 1499(handling)s 2778(and)s +3365(input)s 4170(str)s 5(eams)k 5301(\(eg)s 5784(stdin\))s + +grestore +0 11287(When)m 610(the)s 938(service)s 1651(program)s 2501(is)s +2692(reading)s 3442(from)s 3947(a)s 4093(\207le)s 4435(descriptor)s +5430(connected)s 6439(to)s 6658(the)s 6987(calling)s 7670(side,)s +8143(the)s 8471(fd)s 8708(that)s 0 11047(the)m 348(service)s +1080(program)s 1950(refers)s 2543(to)s 2782(a)s 2948(pipe)s +3416(set)s 3741(up)s 4034(by)s gsave +4328 11101 translate +0.6953 1.0000 scale +240 fnt31 0 -52(userv)m + +grestore +4888(and)s 5292(not)s 5658(to)s 5897(the)s 6245(same)s +6792(object)s 7436(as)s 7686(w)s 2(as)k 8107(presented)s +0 10807(by)m 294(the)s 642(caller)s 13(.)k 0 10399(Therefore)m +988(if)s 1195(there)s 1718(is)s 1918(some)s 2469(kind)s +2943(of)s 3205(error)s 3718(it)s 3900(is)s 4100(possible)s +4930(for)s 5258(the)s 5597(service-side)s 6783(fd)s 7030(to)s +7259(gi)s 6(v)k 3(e)k 7708(premature)s 8722(end)s +0 10159(of)m 271(\207le.)s 680(If)s 910(it)s 1102(is)s +1312(important)s 2301(to)s 2540(tell)s 2899(whether)s 3729(all)s +4022(of)s 4293(the)s 4641(intended)s 5523(data)s 5981(has)s +6351(been)s 6860(recei)s 6(v)k 3(ed)k 7718(by)s +8012(the)s 8360(service)s 0 9919(program,)m 917(the)s 1265(datastream)s +2359(must)s 2884(contain)s 3645(an)s 3928(e)s 3(xplicit)k +4701(end-of-\207le)s 5765(indication)s 6778(of)s 7049(some)s 7610(kind.)s +0 9511(F)m 3(or)k 385(e)s 3(xample,)k 1294(consider)s +2159(a)s gsave +2321 9565 translate +0.6953 1.0000 scale +240 fnt31 0 -52(userv)m +grestore +2876(service)s 3603(for)s +3936(submitting)s 5008(a)s 5169(mail)s 5643(message,)s 6556(where)s +7191(message)s 8052(is)s 8257(supplied)s 0 9271(on)m 297(the)s +645(service')s 13(s)k 1531(stdin.)s 2100(Ho)s 6(we)k 6(v)k 3(er)k 9(,)k +3060(if)s 3277(the)s 3625(calling)s 4328(process)s 5096(is)s +5306(interrupted)s 6412(before)s 7078(it)s 7270(has)s 7640(written)s +8373(all)s 8666(of)s 0 9031(the)m 347(message,)s 1262(the)s +1608(service)s 2339(program)s 3207(will)s 3631(get)s 3982(EOF)s +4490(on)s 4785(the)s 5132(message)s 5996(data.)s 6496(In)s +6751(a)s 6915(nai)s 6(v)k 3(e)k 7478(arrangement)s +8730(this)s 0 8791(w)m 2(ould)k 655(cause)s 1242(a)s +1408(half-complete)s 2790(message)s 3656(to)s 3895(be)s 4177(sent.)s +4666(T)s 19(o)k 4966(pre)s 6(v)k 3(ent)k +5734(this,)s 6186(it)s 6378(is)s 6588(necessary)s 7571(to)s +7810(adopt)s 8402(some)s 0 8551(kind)m 484(of)s 755(e)s 3(xplicit)k +1528(end)s 1932(indication;)s 3000(for)s 3338(e)s 3(xample,)k +4252(the)s 4600(end)s 5004(of)s 5275(the)s 5623(message)s +6489(could)s 7079(be)s 7361(signalled)s 8282(by)s 8576(a)s +8742(dot)s 0 8311(on)m 297(a)s 463(line)s 877(by)s +1171(itself,)s 1754(and)s 2158(dots)s 2608(doubled,)s 3487(as)s +3737(in)s 3980(SMTP)s 26(.)k 4683(Then)s 5232(the)s +5580(service)s 6312(program)s 7182(w)s 2(ould)k 7837(kno)s 6(w)k +8418(when)s 0 8071(the)m 348(entire)s 947(message)s 1813(had)s +2217(been)s 2726(recei)s 6(v)k 3(ed,)k 3633(and)s +4037(could)s 4627(a)s 4(v)k 4(oid)k 5209(queueing)s +6140(incomplete)s 7258(messages.)s 9066 670 0 670 240 240 60 0 7047 LoutGr2 +newpath 0 ysize 0.3 ft sub moveto +xsize 0 rlineto +0 0.1 ft rlineto +xsize neg 0 rlineto +closepath fill +grestore +320 fnt84 0 66(6.7.)m 628(Don't)s +1488(gi)s 3(v)k 3(e)k 2107(access)s 3013(to)s +3352(general-pur)s 3(pose)k 5640(utilities)s +grestore +0 6585(Do)m 346(not)s +712(specify)s 1456(general)s 2214(purpose)s 3028(programs)s 3982(lik)s 2(e)k +gsave +4394 6639 translate +0.6953 1.0000 scale +240 fnt31 0 -52(mv)m +grestore +4654(or)s gsave +4913 6639 translate +0.6953 1.0000 scale +240 fnt31 0 -52(cat)m + +grestore +5273(in)s gsave +5516 6639 translate +0.6953 1.0000 scale +240 fnt31 0 -52(execute\211)m +grestore +6377(directi)s 6(v)k 3(es)k +7347(without)s 8138(careful)s 0 6345(thought)m 792(about)s 1384(their)s +1881(ar)s 4(guments,)k 2980(and)s 3384(certainly)s 4273(not)s +4639(if)s gsave +4856 6399 translate +0.6953 1.0000 scale +240 fnt31 0 -52(no\211suppress\211args)m +grestore +6518(is)s 6728(speci\207ed.)s +7682(If)s 7912(you)s 8327(do)s 8620(so)s 8886(it)s +0 6105(will)m 426(gi)s 6(v)k 3(e)k 885(the)s +1233(caller)s 1822(much)s 2411(more)s 2958(pri)s 6(vilige)k +3817(than)s 4286(you)s 4701(probably)s 5606(intend.)s 0 5697(It)m +205(is)s 415(a)s 581(shame)s 1248(that)s 1666(I)s +1801(ha)s 4(v)k 3(e)k 2302(to)s 2541(say)s +2914(this)s 3310(here,)s 3828(b)s 4(ut)k 4190(ine)s 3(xperienced)k +5586(administrators)s 7003(ha)s 4(v)k 3(e)k 7504(made)s +8078(similar)s 0 5457(mistak)m 2(es)k 885(with)s 1367(programs)s +2321(lik)s 2(e)k gsave +2733 5511 translate +0.6953 1.0000 scale +240 fnt31 0 -52(sudo)m +grestore +3133(.)s +0 52(1.0.1)m 4809(User)s 5320(service)s 6052(daemon)s 6867(and)s +7271(client)s 7861(speci\207cation)s grestore grestore