[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

pies-1.4 released [stable]

From: Sergey Poznyakoff
Subject: pies-1.4 released [stable]
Date: Tue, 02 Jul 2019 17:42:29 +0300


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:   (1.6MB)  (1.2MB)

Here are the GPG detached signatures[*]:

Use a mirror for higher download bandwidth:

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

* 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.


 env {
   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

* Improved testsuite

Best regards,

reply via email to

[Prev in Thread] Current Thread [Next in Thread]