Artifact 1e273ea0bbacf3b212ca722b4cbea11775191e16:
- File daemon.scm — part of check-in [dfd75df083] at 2013-04-09 00:17:05 on branch trunk — Added daemon support for server. Also added auto launch of server if not running (user: matt size: 2064) [more...]
0000: 3b 3b 20 54 61 6b 65 6e 20 66 72 6f 6d 20 74 68 ;; Taken from th 0010: 65 20 63 68 69 63 6b 65 6e 20 33 2e 78 20 64 61 e chicken 3.x da 0020: 65 6d 6f 6e 20 65 67 67 0a 3b 3b 0a 3b 3b 20 43 emon egg.;;.;; C 0030: 6f 70 79 72 69 67 68 74 20 28 63 29 20 32 30 30 opyright (c) 200 0040: 37 20 20 48 61 6e 73 20 42 75 6c 66 6f 6e 65 20 7 Hans Bulfone 0050: 3c 6a 73 62 40 6e 69 6c 2e 61 74 3e 0a 3b 3b 20 <jsb@nil.at>.;; 0060: 41 6c 6c 20 72 69 67 68 74 73 20 72 65 73 65 72 All rights reser 0070: 76 65 64 2e 0a 3b 3b 20 0a 3b 3b 20 52 65 64 69 ved..;; .;; Redi 0080: 73 74 72 69 62 75 74 69 6f 6e 20 61 6e 64 20 75 stribution and u 0090: 73 65 20 69 6e 20 73 6f 75 72 63 65 20 61 6e 64 se in source and 00a0: 20 62 69 6e 61 72 79 20 66 6f 72 6d 73 2c 20 77 binary forms, w 00b0: 69 74 68 20 6f 72 20 77 69 74 68 6f 75 74 0a 3b ith or without.; 00c0: 3b 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2c 20 ; modification, 00d0: 61 72 65 20 70 65 72 6d 69 74 74 65 64 20 70 72 are permitted pr 00e0: 6f 76 69 64 65 64 20 74 68 61 74 20 74 68 65 20 ovided that the 00f0: 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6e 64 69 74 following condit 0100: 69 6f 6e 73 20 61 72 65 20 6d 65 74 3a 0a 3b 3b ions are met:.;; 0110: 20 0a 3b 3b 20 20 20 20 20 2a 20 52 65 64 69 73 .;; * Redis 0120: 74 72 69 62 75 74 69 6f 6e 73 20 6f 66 20 73 6f tributions of so 0130: 75 72 63 65 20 63 6f 64 65 20 6d 75 73 74 20 72 urce code must r 0140: 65 74 61 69 6e 20 74 68 65 20 61 62 6f 76 65 20 etain the above 0150: 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 copyright notice 0160: 2c 0a 3b 3b 20 20 20 20 20 20 20 74 68 69 73 20 ,.;; this 0170: 6c 69 73 74 20 6f 66 20 63 6f 6e 64 69 74 69 6f list of conditio 0180: 6e 73 20 61 6e 64 20 74 68 65 20 66 6f 6c 6c 6f ns and the follo 0190: 77 69 6e 67 20 64 69 73 63 6c 61 69 6d 65 72 2e wing disclaimer. 01a0: 0a 3b 3b 20 20 20 20 20 2a 20 52 65 64 69 73 74 .;; * Redist 01b0: 72 69 62 75 74 69 6f 6e 73 20 69 6e 20 62 69 6e ributions in bin 01c0: 61 72 79 20 66 6f 72 6d 20 6d 75 73 74 20 72 65 ary form must re 01d0: 70 72 6f 64 75 63 65 20 74 68 65 20 61 62 6f 76 produce the abov 01e0: 65 20 63 6f 70 79 72 69 67 68 74 0a 3b 3b 20 20 e copyright.;; 01f0: 20 20 20 20 20 6e 6f 74 69 63 65 2c 20 74 68 69 notice, thi 0200: 73 20 6c 69 73 74 20 6f 66 20 63 6f 6e 64 69 74 s list of condit 0210: 69 6f 6e 73 20 61 6e 64 20 74 68 65 20 66 6f 6c ions and the fol 0220: 6c 6f 77 69 6e 67 20 64 69 73 63 6c 61 69 6d 65 lowing disclaime 0230: 72 20 69 6e 20 74 68 65 0a 3b 3b 20 20 20 20 20 r in the.;; 0240: 20 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 documentation 0250: 61 6e 64 2f 6f 72 20 6f 74 68 65 72 20 6d 61 74 and/or other mat 0260: 65 72 69 61 6c 73 20 70 72 6f 76 69 64 65 64 20 erials provided 0270: 77 69 74 68 20 74 68 65 20 64 69 73 74 72 69 62 with the distrib 0280: 75 74 69 6f 6e 2e 0a 3b 3b 20 20 20 20 20 2a 20 ution..;; * 0290: 4e 65 69 74 68 65 72 20 74 68 65 20 6e 61 6d 65 Neither the name 02a0: 20 6f 66 20 74 68 65 20 61 75 74 68 6f 72 20 6e of the author n 02b0: 6f 72 20 74 68 65 20 6e 61 6d 65 73 20 6f 66 20 or the names of 02c0: 68 69 73 20 63 6f 6e 74 72 69 62 75 74 6f 72 73 his contributors 02d0: 20 6d 61 79 0a 3b 3b 20 20 20 20 20 20 20 62 65 may.;; be 02e0: 20 75 73 65 64 20 74 6f 20 65 6e 64 6f 72 73 65 used to endorse 02f0: 20 6f 72 20 70 72 6f 6d 6f 74 65 20 70 72 6f 64 or promote prod 0300: 75 63 74 73 20 64 65 72 69 76 65 64 20 66 72 6f ucts derived fro 0310: 6d 20 74 68 69 73 20 73 6f 66 74 77 61 72 65 0a m this software. 0320: 3b 3b 20 20 20 20 20 20 20 77 69 74 68 6f 75 74 ;; without 0330: 20 73 70 65 63 69 66 69 63 20 70 72 69 6f 72 20 specific prior 0340: 77 72 69 74 74 65 6e 20 70 65 72 6d 69 73 73 69 written permissi 0350: 6f 6e 2e 0a 3b 3b 20 0a 3b 3b 20 54 48 49 53 20 on..;; .;; THIS 0360: 53 4f 46 54 57 41 52 45 20 49 53 20 50 52 4f 56 SOFTWARE IS PROV 0370: 49 44 45 44 20 42 59 20 54 48 45 20 43 4f 50 59 IDED BY THE COPY 0380: 52 49 47 48 54 20 48 4f 4c 44 45 52 53 20 41 4e RIGHT HOLDERS AN 0390: 44 20 43 4f 4e 54 52 49 42 55 54 4f 52 53 20 22 D CONTRIBUTORS " 03a0: 41 53 20 49 53 22 0a 3b 3b 20 41 4e 44 20 41 4e AS IS".;; AND AN 03b0: 59 20 45 58 50 52 45 53 53 20 4f 52 20 49 4d 50 Y EXPRESS OR IMP 03c0: 4c 49 45 44 20 57 41 52 52 41 4e 54 49 45 53 2c LIED WARRANTIES, 03d0: 20 49 4e 43 4c 55 44 49 4e 47 2c 20 42 55 54 20 INCLUDING, BUT 03e0: 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 2c 0a NOT LIMITED TO,. 03f0: 3b 3b 20 54 48 45 20 49 4d 50 4c 49 45 44 20 57 ;; THE IMPLIED W 0400: 41 52 52 41 4e 54 49 45 53 20 4f 46 20 4d 45 52 ARRANTIES OF MER 0410: 43 48 41 4e 54 41 42 49 4c 49 54 59 20 41 4e 44 CHANTABILITY AND 0420: 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 FITNESS FOR A P 0430: 41 52 54 49 43 55 4c 41 52 0a 3b 3b 20 50 55 52 ARTICULAR.;; PUR 0440: 50 4f 53 45 20 41 52 45 20 44 49 53 43 4c 41 49 POSE ARE DISCLAI 0450: 4d 45 44 2e 20 49 4e 20 4e 4f 20 45 56 45 4e 54 MED. IN NO EVENT 0460: 20 53 48 41 4c 4c 20 54 48 45 20 43 4f 50 59 52 SHALL THE COPYR 0470: 49 47 48 54 20 4f 57 4e 45 52 20 4f 52 0a 3b 3b IGHT OWNER OR.;; 0480: 20 43 4f 4e 54 52 49 42 55 54 4f 52 53 20 42 45 CONTRIBUTORS BE 0490: 20 4c 49 41 42 4c 45 20 46 4f 52 20 41 4e 59 20 LIABLE FOR ANY 04a0: 44 49 52 45 43 54 2c 20 49 4e 44 49 52 45 43 54 DIRECT, INDIRECT 04b0: 2c 20 49 4e 43 49 44 45 4e 54 41 4c 2c 20 53 50 , INCIDENTAL, SP 04c0: 45 43 49 41 4c 2c 0a 3b 3b 20 45 58 45 4d 50 4c ECIAL,.;; EXEMPL 04d0: 41 52 59 2c 20 4f 52 20 43 4f 4e 53 45 51 55 45 ARY, OR CONSEQUE 04e0: 4e 54 49 41 4c 20 44 41 4d 41 47 45 53 20 28 49 NTIAL DAMAGES (I 04f0: 4e 43 4c 55 44 49 4e 47 2c 20 42 55 54 20 4e 4f NCLUDING, BUT NO 0500: 54 20 4c 49 4d 49 54 45 44 20 54 4f 2c 0a 3b 3b T LIMITED TO,.;; 0510: 20 50 52 4f 43 55 52 45 4d 45 4e 54 20 4f 46 20 PROCUREMENT OF 0520: 53 55 42 53 54 49 54 55 54 45 20 47 4f 4f 44 53 SUBSTITUTE GOODS 0530: 20 4f 52 20 53 45 52 56 49 43 45 53 3b 20 4c 4f OR SERVICES; LO 0540: 53 53 20 4f 46 20 55 53 45 2c 20 44 41 54 41 2c SS OF USE, DATA, 0550: 20 4f 52 20 50 52 4f 46 49 54 53 3b 0a 3b 3b 20 OR PROFITS;.;; 0560: 4f 52 20 42 55 53 49 4e 45 53 53 20 49 4e 54 45 OR BUSINESS INTE 0570: 52 52 55 50 54 49 4f 4e 29 20 48 4f 57 45 56 45 RRUPTION) HOWEVE 0580: 52 20 43 41 55 53 45 44 20 41 4e 44 20 4f 4e 20 R CAUSED AND ON 0590: 41 4e 59 20 54 48 45 4f 52 59 20 4f 46 20 4c 49 ANY THEORY OF LI 05a0: 41 42 49 4c 49 54 59 2c 0a 3b 3b 20 57 48 45 54 ABILITY,.;; WHET 05b0: 48 45 52 20 49 4e 20 43 4f 4e 54 52 41 43 54 2c HER IN CONTRACT, 05c0: 20 53 54 52 49 43 54 20 4c 49 41 42 49 4c 49 54 STRICT LIABILIT 05d0: 59 2c 20 4f 52 20 54 4f 52 54 20 28 49 4e 43 4c Y, OR TORT (INCL 05e0: 55 44 49 4e 47 20 4e 45 47 4c 49 47 45 4e 43 45 UDING NEGLIGENCE 05f0: 20 4f 52 0a 3b 3b 20 4f 54 48 45 52 57 49 53 45 OR.;; OTHERWISE 0600: 29 20 41 52 49 53 49 4e 47 20 49 4e 20 41 4e 59 ) ARISING IN ANY 0610: 20 57 41 59 20 4f 55 54 20 4f 46 20 54 48 45 20 WAY OUT OF THE 0620: 55 53 45 20 4f 46 20 54 48 49 53 20 53 4f 46 54 USE OF THIS SOFT 0630: 57 41 52 45 2c 20 45 56 45 4e 20 49 46 0a 3b 3b WARE, EVEN IF.;; 0640: 20 41 44 56 49 53 45 44 20 4f 46 20 54 48 45 20 ADVISED OF THE 0650: 50 4f 53 53 49 42 49 4c 49 54 59 20 4f 46 20 53 POSSIBILITY OF S 0660: 55 43 48 20 44 41 4d 41 47 45 2e 0a 0a 28 64 65 UCH DAMAGE...(de 0670: 63 6c 61 72 65 20 28 75 6e 69 74 20 64 61 65 6d clare (unit daem 0680: 6f 6e 29 29 0a 0a 28 64 65 66 69 6e 65 20 28 64 on))..(define (d 0690: 61 65 6d 6f 6e 3a 69 7a 65 29 0a 20 20 28 63 68 aemon:ize). (ch 06a0: 61 6e 67 65 2d 64 69 72 65 63 74 6f 72 79 20 22 ange-directory " 06b0: 2f 22 29 0a 20 20 28 6c 65 74 20 28 28 66 64 2d /"). (let ((fd- 06c0: 72 20 28 66 69 6c 65 2d 6f 70 65 6e 20 22 2f 64 r (file-open "/d 06d0: 65 76 2f 6e 75 6c 6c 22 20 6f 70 65 6e 2f 72 64 ev/null" open/rd 06e0: 6f 6e 6c 79 29 29 0a 20 20 20 20 20 20 20 20 28 only)). ( 06f0: 66 64 2d 77 20 28 66 69 6c 65 2d 6f 70 65 6e 20 fd-w (file-open 0700: 22 2f 64 65 76 2f 6e 75 6c 6c 22 20 6f 70 65 6e "/dev/null" open 0710: 2f 77 72 6f 6e 6c 79 29 29 29 0a 20 20 20 20 28 /wronly))). ( 0720: 64 75 70 6c 69 63 61 74 65 2d 66 69 6c 65 6e 6f duplicate-fileno 0730: 20 66 64 2d 72 20 30 29 0a 20 20 20 20 28 64 75 fd-r 0). (du 0740: 70 6c 69 63 61 74 65 2d 66 69 6c 65 6e 6f 20 66 plicate-fileno f 0750: 64 2d 77 20 31 29 0a 20 20 20 20 28 66 69 6c 65 d-w 1). (file 0760: 2d 63 6c 6f 73 65 20 66 64 2d 72 29 0a 20 20 20 -close fd-r). 0770: 20 28 66 69 6c 65 2d 63 6c 6f 73 65 20 66 64 2d (file-close fd- 0780: 77 29 29 0a 20 20 28 6c 65 74 20 28 28 63 68 69 w)). (let ((chi 0790: 6c 64 2d 70 69 64 20 28 70 72 6f 63 65 73 73 2d ld-pid (process- 07a0: 66 6f 72 6b 29 29 29 0a 20 20 20 20 28 69 66 20 fork))). (if 07b0: 28 6e 6f 74 20 28 7a 65 72 6f 3f 20 63 68 69 6c (not (zero? chil 07c0: 64 2d 70 69 64 29 29 0a 20 20 20 20 20 20 20 20 d-pid)). 07d0: 28 65 78 69 74 20 30 29 29 29 0a 20 20 28 63 72 (exit 0))). (cr 07e0: 65 61 74 65 2d 73 65 73 73 69 6f 6e 29 0a 20 20 eate-session). 07f0: 28 64 75 70 6c 69 63 61 74 65 2d 66 69 6c 65 6e (duplicate-filen 0800: 6f 20 31 20 32 29 0a 20 20 28 76 6f 69 64 29 29 o 1 2). (void))