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)))))