anchor.diff:    (unless (excl.osi:detach-from-terminal-supported-p)
       (error "not supported allegro cl  to detach console")))
   
  +(defvar *project-directory* nil)
  +
   (defconstant +wnohang+ (if (boundp '+wnohang+) +wnohang+
  -			   #+sbcl sb-unix:wnohang
  +			   #+sbcl 1
   			   #+allegro 1
  -			   #+ccl #$WNOHANG
  -			   ))
  +			   #+ccl #$WNOHANG))
  +
   (defconstant +sigkill+ (if (boundp '+sigkill+) +sigkill+
   			   #+sbcl sb-unix:sigkill
   			   #+allegro excl::*sigkill*
  -			   #+ccl #$SIGKILL
  -			   ))
  +			   #+ccl #$SIGKILL))
   (defvar *o-rdonly* (or 
   		    #+sbcl sb-posix:o-rdonly
   		    #+allegro excl::*o-rdonly*
  
positive.code: 		      (format t "~&loading ~S~%" lpath)
  		      (force-output)
  		      (load lpath)
  		      (format t "~&load complete~%" lpath))
  		    (format t "~&skip loading ~A~%" lpath))
  		(force-output))
  	      (loop :while (/= (getppid) 1)
  		 :do
  		 (sleep 5))
  	      (format t "~&parent process is dead~%" lpath))
  	  (serious-condition (x)
  	    (_ :trivial-backtrace :print-backtrace
  	       x :output *standard-output*)))
  	(format t "~&finish ~S~%" (multiple-value-list 
  				   (decode-universal-time (get-universal-time))))))))
  
  (defun delete-file-if-probed (path)
    (when (probe-file path)
      (delete-file path)))
  
  (defun run-projects (&key (project-name "lisp-services")
  		     directory
  		     qlpath
  		     (child-function *run-child-function*)
  		     initialize)
    (chore)
    (with-daemonize
      (with-shepherd-1process () ()
  
negative.code: 		    #+allegro excl::*o-append*
  		    #+ccl #$O_APPEND
  		    ))
  
  (defvar *run-child-function* 'run-child)
  
  (defun chdir (dir)
    #+sbcl (sb-posix:chdir dir)
    #+allegro (excl:chdir dir)
    #+ccl (ccl::%chdir dir))
  
  (defun setenv (env val)
    #+sbcl (sb-posix:setenv env val 1)
  