| Age | Commit message (Collapse) | Author | 
|---|
|  |  | 
|  | The unsupervised status is to be used when a supervisor of a supervised
service dies but leaves the service daemon itself running. | 
|  | This allows us to detect when the supervisor dies unexpectedly because
in that case child_pid will still exist. | 
|  | This allows the equivalent of "unsetting" a value for a service. | 
|  |  | 
|  | - do not sleep for the full 90 seconds if processes are dead
- re-arrange the order of signals we attempt to send to the processes | 
|  | This is to be used if the service is being supervised and the
supervisor is somehow killed.
Currently, this is very linux specific, but I will expand to other
platforms, patches are welcome. | 
|  | X-Gentoo-Bug: 635334
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=635334 | 
|  |  | 
|  |  | 
|  | X-Gentoo-Bug: 634634
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=634634 | 
|  | - Harden against dying by handling all signals that would terminate the
program and adding --reexec support
- factor the supervisor into its own function
- fix test for whether we are already running | 
|  | Prior to this change, we were logging unexpected terminations of daemons
we were supervising at the info level. This change moves the logs to
warnings. | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | The sysfs init script referred to @LIBEXECDIR@ before this change, but
it is better to refer to RC_LIBEXECDIR so that we get rid of a sed
substitution. | 
|  | This fixes #150 | 
|  |  | 
|  | The service binary was just a synonym for rc-service, so use rc-service
instead of service. If you want a "service" binary, it should be
something that can determine which service manager you are running and
run the appropriate service manager commands. | 
|  |  | 
|  |  | 
|  | This makes the cgroups handling consistent between cgroups v1 and v2.
Also, it fixes #167. | 
|  |  | 
|  |  | 
|  | We need to do this to skip the zombie state for the child process since
we are not easily able to wait() for it. | 
|  |  | 
|  |  | 
|  | Clean up the process for killing an active supervisor when stopping. | 
|  |  | 
|  | This is for #163. | 
|  | rc-selinux.c: In function ‘selinux_setup’:
rc-selinux.c:361:9: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  curr_t = context_type_get(curr_con);
         ^ | 
|  | The minimum requirement for libselinux is now >=2.6
The refpolicy and the gentoo policy contain the
contexts since version 2.20170204-r4 | 
|  | In hybrid mode, we should not try to mount cgroup2 if it is not
available in the kernel.
This fixes #164. | 
|  | This is related to #164. | 
|  |  | 
|  |  | 
|  |  | 
|  | If we were able to kill all the processes in the cgroup, it should be
removed. | 
|  | cgroup_cleanup should warn if it is unable to clean up all processes in
the control group, but it will always return success. | 
|  | The "SIG" prefix on signal names passed to kill -s isn't portable. | 
|  | This allows supervise-daemon to run this code without attempting to
print some status messages used by start-stop-daemon. | 
|  |  | 
|  | Instead of looping and sending multiple signals to child processes in
cgroup_cleanup, we send sigterm followed by sleeping one second then
sigkill.
This brings us more in line with systemd's "control group" killmode
setting.
Also, this commit includes several shellcheck cleanups. | 
|  |  | 
|  | Update the documentation to reflect cgroups version 2 support.
Also, add a section on dealing with orphaned service processes.
This fixes #94. | 
|  | This is for #94. | 
|  |  |