anchor.diff:  			   #+sbcl sb-unix:sigkill
   			   #+allegro excl::*sigkill*
   			   #+ccl #$SIGKILL))
  +
   (defvar *o-rdonly* (or 
   		    #+sbcl sb-posix:o-rdonly
   		    #+allegro excl::*o-rdonly*
   		    #+ccl #$O_RDONLY 
   		    ))
  +
   (defvar *o-wronly* (or
   		    #+sbcl sb-posix:o-wronly
   		    #+allegro excl::*o-wronly*
   		    #+ccl #$O_WRONLY
   		    ))
  +
   (defvar *o-append* (or 
   		    #+sbcl sb-posix:o-append
   		    #+allegro excl::*o-append*
  
positive.code: (defpackage :daemon
    (:use :cl)
    (:export #:run-projects #:exit))
  (in-package :daemon)
  
  #+allegro
  (eval-when (:load-toplevel :execute)
    (unless (excl.osi:detach-from-terminal-supported-p)
      (error "not supported allegro cl  to detach console")))
  
  (defvar *project-directory* nil)
  
  
negative.code:   #+allegro (excl.osi:pwent-dir pswd)
    #+ccl (ccl:%get-cstring(ccl:pref pswd :passwd.pw_dir)))
  
  ;; I have to change this function's name...
  (defun close-fd-streams ()
    (chdir "/")
    #-allegro
    (progn 
      #+sbcl
      (progn
        (setf sb-sys:*stdin* (make-concatenated-stream))
        (when (sb-sys:fd-stream-p sb-sys:*tty*) 
  	(close sb-sys:*tty* :abort t)
  	(setf sb-sys:*tty* (make-two-way-stream sb-sys:*stdin* sb-sys:*stdout*))))
      #+ccl 
      (setf ccl::*stdin* (make-concatenated-stream)
  	  ccl::*stdout* (make-broadcast-stream)
  	  ccl::*terminal-input* ccl::*stdin*
  	  ccl::*terminal-output* ccl::*stdout*
  	  ccl::*terminal-io* (make-two-way-stream 
  			      ccl::*terminal-input* ccl::*terminal-output*))
      (let ((write (popen "/dev/null" *o-rdonly*)))
        (dup2 write 0)
        (dup2 write 2))
      (dup2 (popen "/dev/null" (logior *o-wronly*
  				     *o-append*)) 1))
    #+allegro 
    (excl.osi:detach-from-terminal))
  
  (defun chore ()
    #+linux
  