Hello, This is to announce the release of GNU pies version 1.4.
GNU pies (pronounced ``p-yes'') is a program invocation and execution supervisor. It starts and controls execution of external programs, making it possible, in particular, to run in background programs that were not designed to be run as daemons. Pies configuration file allows administrator to specify arbitrary actions to be executed upon program termination (depending on its exit code or signal number it was terminated by). It gives administrators complete control over the execution environment of each program. This includes modifying shell environment, running programs with the given user privileges, etc. The standard error and/or standard output of any component can be redirected either to a disk file or to syslog. See the end of this message for a list of noteworthy changes in this version. Here are the compressed sources: http://ftp.gnu.org/gnu/pies/pies-1.4.tar.gz (1.6MB) http://ftp.gnu.org/gnu/pies/pies-1.4.tar.bz2 (1.2MB) Here are the GPG detached signatures[*]: http://ftp.gnu.org/gnu/pies/pies-1.4.tar.gz.sig http://ftp.gnu.org/gnu/pies/pies-1.4.tar.bz2.sig Use a mirror for higher download bandwidth: https://www.gnu.org/order/ftp.html Here are the MD5 and SHA1 checksums: 490fafa1f78176bd45d08bab534ed13f pies-1.4.tar.gz f65a31440ab51ae86e4869284f22e2f3 pies-1.4.tar.bz2 e4a31386ecc2782a7ef2bedb84e38385ef7ba090 pies-1.4.tar.gz ad1594dea5f11fddffc8154367e83fcc5928d797 pies-1.4.tar.bz2 [*] Use a .sig file to verify that the corresponding file (without the .sig suffix) is intact. First, be sure to download both the .sig file and the corresponding tarball. Then, run a command like this: gpg --verify pies-1.4.tar.gz.sig If that command fails because you don't have the required public key, then run this command to import it: gpg --keyserver keys.gnupg.net --recv-keys 3602B07F55D0C732 and rerun the 'gpg --verify' command. Noteworthy changes in this release: * New option --no-init The --no-init option instructs pies not to switch to init mode if its PID is 1. Use this option if you run pies as a process manager in a docker container. * New component modes: startup and shutdown Startup components are run right after pies startup. Any other components start running only after last startup component has terminated. Shutdown components are executed at program shutdown, after all other components have been terminated. Any number of startup or shutdwon components can be defined in the configuration file. Such multiple components are run simultaneously, unless required otherwise by their "prerequisites" and "dependents" statements. * New component flag: shell The 'shell' flag instructs pies to run the component via "/bin/sh -c $command". Use it if the command should undergo variable expansion, contains redirections, pipes, etc. E.g. component X { flags shell; command "if [ -n \"$X\" ]; then foo; else bar; fi" } * Improved cyclic dependency diagnostics * New 'env' statement The 'env' statement has been re-implemented as a compound statement. It can contain the following sub-statements: ** clear Clears the environment ** keep NAME Keeps the variable NAME when clearing the environment. Implies "clear". NAME can be a globbing pattern, in which case all variables matching the pattern are retained. ** set "NAME=VALUE" Sets the environment variable for the component. VALUE is subject to variable expansion. ** eval "VALUE" Perform variable expansion on VALUE and discard the result (similar to the shell ":" command). Useful for side effects, e.g.: eval ${HOME:=/home/t} ** unset NAME Unsets the variable. NAME can be a globbing pattern, in which case all variables matching the pattern are unset. Example: env { clear; keep PATH; keep MANPATH; keep "LC_*"; set "MANPATH=$MANPATH${MANPATH:+:}/usr/local/man"; } * Legacy 'env' statement. Support for the old one-line syntax of "env" is retained for backward compatibility. Previous versions applied unnecessary word splitting if given a single argument. This is now fixed, so that e.g. the following statement is processed correctly and defines a single variable X to have the value "foo bar": env "X=foo bar" * New environment variable available for commands started from return-code Programs started via "exec" statement in the "return-code" block obtain the PID of the master pies process in environment variable PIES_MASTER_PID. * Improved testsuite Best regards, Sergey -- If you have a working or partly working program that you'd like to offer to the GNU project as a GNU package, see https://www.gnu.org/help/evaluation.html.