hdaemonize 0.5.2 → 0.5.3
raw patch · 4 files changed
+108/−103 lines, 4 filesdep ~hsyslogPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: hsyslog
API changes (from Hackage documentation)
Files
- README +0/−97
- README.md +98/−0
- System/Posix/Daemonize.hs +0/−1
- hdaemonize.cabal +10/−5
− README
@@ -1,97 +0,0 @@-`hdaemonize`-=================--`hdaemonize` is a simple library that hides some of the complexities-of writing UNIX daemons in Haskell.--Obtaining--------------The latest version is available (BSD license) at-[GitHub](https://github.com/greydot/hdaemonize).--Using----------The synopsis is:-- import System.Posix.Daemonize- main = daemonize $ program--This code will make `program` do what good daemons should do, that is,-detach from the terminal, close file descriptors, create a new process-group, and so on.--If you want more functionality than that, it is available as a-`serviced` function.--Here is an example:-- import Control.Concurrent- import System.Posix.Daemonize-- loop i log = do threadDelay $ 10^6- log (show i)- writeFile "/tmp/counter" $ show i- if i == 5 then undefined else loop (i + 1) log-- main = serviced (loop 0)--Let us say this program is compiled as `mydaemon`. Then:-- # mydaemon start--starts the service. A second call to start will complain that the-program is already running.--During its execution, mydaemon will simply write a new number to-`/tmp/counter` every second, until it reaches 5. Then, an exception-will be thrown. This exception will be caught by `hdaemonize`, and-logged to `/var/log/daemon.log` or similar (this is depends on how-`syslog` works on your platorm). `log (show i)` will leave messages-in the same file.--When the exception is thrown, the program will be restared in 5-seconds, and will start counting from 0 again.--The following commands are also made available:-- # mydaemon stop- # mydaemon restart--Finally, `mydaemon` drops privileges. By default it changes the-effective user and group ids to those of the `daemon` user, but it-prefers to use those of `mydaemon`, if present.---Changelog------------* 0.5.2- * Fix pre-AMP builds.--* 0.5.1- * Updated to use hsyslog >=4--* 0.4- * added support for a privileged action before dropping privileges--* 0.3- * merged with updates by madhadron--* 0.2- * provided documentation- * backported to older GHC versions, tested on 6.8.1--* 0.1- * initial public release---Authors----------Anton Tayanovskyy <name.surname@gmail.com>, bug reports and feature-requests welcome.--The code is originally based on a public posting by-[Andre Nathan](http://sneakymustard.com/), used by permission.
+ README.md view
@@ -0,0 +1,98 @@+`hdaemonize`+=================+[](https://travis-ci.org/greydot/hdaemonize)++`hdaemonize` is a simple library that hides some of the complexities+of writing UNIX daemons in Haskell.++Obtaining+-----------++The latest version is available (BSD license) at+[GitHub](https://github.com/greydot/hdaemonize).++Using+-------++The synopsis is:++ import System.Posix.Daemonize+ main = daemonize $ program++This code will make `program` do what good daemons should do, that is,+detach from the terminal, close file descriptors, create a new process+group, and so on.++If you want more functionality than that, it is available as a+`serviced` function.++Here is an example:++ import Control.Concurrent+ import System.Posix.Daemonize++ loop i log = do threadDelay $ 10^6+ log (show i)+ writeFile "/tmp/counter" $ show i+ if i == 5 then undefined else loop (i + 1) log++ main = serviced (loop 0)++Let us say this program is compiled as `mydaemon`. Then:++ # mydaemon start++starts the service. A second call to start will complain that the+program is already running.++During its execution, mydaemon will simply write a new number to+`/tmp/counter` every second, until it reaches 5. Then, an exception+will be thrown. This exception will be caught by `hdaemonize`, and+logged to `/var/log/daemon.log` or similar (this is depends on how+`syslog` works on your platorm). `log (show i)` will leave messages+in the same file.++When the exception is thrown, the program will be restared in 5+seconds, and will start counting from 0 again.++The following commands are also made available:++ # mydaemon stop+ # mydaemon restart++Finally, `mydaemon` drops privileges. By default it changes the+effective user and group ids to those of the `daemon` user, but it+prefers to use those of `mydaemon`, if present.+++Changelog+---------++* 0.5.2+ * Fix pre-AMP builds.++* 0.5.1+ * Updated to use hsyslog >=4++* 0.4+ * added support for a privileged action before dropping privileges++* 0.3+ * merged with updates by madhadron++* 0.2+ * provided documentation+ * backported to older GHC versions, tested on 6.8.1++* 0.1+ * initial public release+++Authors+-------+Lana Black <lanablack@amok.cc>++Anton Tayanovskyy <name.surname@gmail.com>.++The code is originally based on a public posting by+[Andre Nathan](http://sneakymustard.com/), used by permission.
System/Posix/Daemonize.hs view
@@ -1,6 +1,5 @@ {-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RankNTypes #-} module System.Posix.Daemonize ( -- * Simple daemonization daemonize,
hdaemonize.cabal view
@@ -1,5 +1,5 @@ Name: hdaemonize-Version: 0.5.2+Version: 0.5.3 Cabal-Version: >= 1.6 License: BSD3 License-file: LICENSE@@ -10,17 +10,18 @@ Synopsis: Library to handle the details of writing daemons for UNIX Description: Provides two functions that help writing better UNIX daemons, daemonize and serviced: daemonize does what a daemon should do- (forking and closing descriptors), while serviced does that and - more (syslog interface, PID file writing, start-stop-restart + (forking and closing descriptors), while serviced does that and+ more (syslog interface, PID file writing, start-stop-restart command line handling, dropping privileges). Build-Type: Simple-Extra-Source-Files: README+Extra-Source-Files: README.md+Tested-With: GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.1 Library Build-Depends: base >= 4 && < 5 , bytestring , unix- , hsyslog >= 4+ , hsyslog == 4 , extensible-exceptions , filepath , mtl@@ -29,3 +30,7 @@ Ghc-Options: -Wall -fno-warn-unused-do-bind -fno-warn-type-defaults -fno-warn-name-shadowing else Ghc-Options: -Wall -fno-warn-type-defaults -fno-warn-name-shadowing++source-repository head+ type: git+ location: https://github.com/greydot/hdaemonize.git