Author: iratqq
Date: Tue Feb 10 03:55:31 2009
New Revision: 5841

Modified:
   trunk/scm/posix.scm

Log:
* scm/posix.scm (process-with-daemon):
  - New function.


Modified: trunk/scm/posix.scm
==============================================================================
--- trunk/scm/posix.scm (original)
+++ trunk/scm/posix.scm Tue Feb 10 03:55:31 2009
@@ -143,3 +143,17 @@
                (file-close pin-in)
                (file-close pout-out)
                (cons pout-in pin-out)))))))
+
+(define (process-with-daemon file . args)
+  (let-optionals* args ((argv (list file)))
+    (let ((pid (process-fork)))
+      (cond ((< pid 0)
+             (begin
+               (uim-notify-fatal "cannot fork")
+               #f))
+            ((= 0 pid) ;; child
+             (daemon 0 1)
+             (process-execute file argv)
+             (_exit 1))
+            (else
+             pid)))))

Reply via email to