No description
- Scheme 69.9%
- Shell 26.1%
- Makefile 1.9%
- M4 1.3%
- C 0.4%
- Other 0.4%
|
Chad House
e142c24be5
The ‘process-monitor’ event loop was recurring from inside a ‘catch’ expression in the ‘fork/monitor’ case, leaking memory associated with the exception handler. In the case of inetd services, this would cause a per-connection leak as new transient service instances were spawned. * modules/shepherd/service.scm (process-monitor): Move loop recursion in ‘fork/monitor’ case to outside the ‘catch’ expression to avoid leaking memory associated with the exception handler. * NEWS: Update. Fixes: shepherd/shepherd#40 |
||
|---|---|---|
| .guix | doc: Use https:// URLs. | |
| build-aux | doc: Use https:// URLs. | |
| doc | doc: Use https:// URLs. | |
| etc | doc: Use https:// URLs. | |
| modules | service: Fix memory leak in process monitor’s ‘fork/monitor’ | |
| po | nls: Update de, ro, sr, sv, and uk translations. | |
| tests | logger: ‘open-log-file’ creates missing parent directories. | |
| .dir-locals.el | service: ‘fork+exec-command’ child process exits upon exception. | |
| .gitignore | .gitignore: adjust for tests/, m4/, po/ | |
| .guix-authorizations | Add dannym's key. | |
| .guix-channel | Change source code URL to Codeberg. | |
| ANNOUNCE--0.5 | dmd -0.5 announcment | |
| ANNOUNCE--0.6 | dmd -0.6 announcment | |
| ANNOUNCE--0.7 | dmd -0.7 announcment | |
| AUTHORS | ‘AUTHORS’ file suggests checking the Git log. | |
| ChangeLog | maint: Remove ‘ChangeLog’ generation. | |
| ChangeLog-2003 | maint: Use UTF-8 instead of ISO-8859-1. | |
| configure.ac | build: Bump to version 1.0.8. | |
| COPYING | doc: Sync COPYING with gnulib file. | |
| guix.scm | maint: Move Guix files to '.guix'. | |
| halt.in | Move commands to (shepherd scripts xyz). | |
| herd.in | build: Capture the source and object directories of Fibers. | |
| Makefile.am | doc: Use https:// URLs. | |
| NEWS | service: Fix memory leak in process monitor’s ‘fork/monitor’ | |
| README | doc: Use https:// URLs. | |
| reboot.in | Move commands to (shepherd scripts xyz). | |
| shepherd.in | maint: Update Fibers URL. | |
| THANKS | Update THANKS. | |
* An -*- outline -*- of the GNU Daemon Shepherd. ** What is the Shepherd? The GNU Daemon Shepherd or GNU Shepherd is a service manager written in Guile that looks after the herd of system services, providing a replacement for the service-managing capabilities of SysV-init (or any other init) with a dependency-based system with a convenient interface. It is intended for use on GNU/Linux and GNU/Hurd, but it is supposed to work on every POSIX-like system where Guile is available. In a previous life, the GNU Shepherd was known as GNU dmd, the daemon-managing daemon. ** Requirements The GNU Shepherd depends on the following pieces of software: - GNU Guile 3.0.x, https://gnu.org/software/guile - Fibers 1.1.0 or later, https://codeberg.org/fibers/fibers ** Getting started Like all GNU packages, this program can be installed using familiar incantations such as: autoreconf -vfi ./configure --prefix=/some/where make make check make install Actually setting up the Shepherd currently requires some work. You should read the Texinfo manual for details: info -f shepherd.info ** Installing development snapshots with Guix The Shepherd repository can be used as a Guix "channel". To do that, change ~/.config/guix/channels.scm along these lines: (append (list (channel (name 'shepherd) (url "https://codeberg.org/shepherd/shepherd.git") (branch "main") (introduction (make-channel-introduction "788a6d6f1d5c170db68aa4bbfb77024fdc468ed3" (openpgp-fingerprint "3CE464558A84FDC69DB40CFB090B11993D9AEBB5"))))) %default-channels) Once that is done, run ‘guix pull’. This will give you additional ‘shepherd’ packages with higher version numbers: guix package -A shepherd You can then install it with ‘guix install shepherd’, or e.g. use it in an operating-system configuration: (operating-system ... (essential-services (modify-services (operating-system-default-essential-services this-operating-system) (shepherd-root-service-type config => (shepherd-configuration (inherit config) (shepherd (@ (shepherd-package) shepherd))))))) ** More information Detailed instructions on installing the GNU Shepherd are available in the file `INSTALL'. A list of user-visible changes between releases can be found in the file `NEWS'. See the Git version control history for a list of people who contributed to this software in the form of changes to the code: https://codeberg.org/shepherd/shepherd/commits/branch/main This program can be distributed under the terms of the GNU General Public License, version 3 or any later version, see the file `COPYING' for details. The Texinfo manual can be distributed under the terms of the GNU Free Documentation License, version 1.3 or any later version, see the manual for details. Note that for any copyright year range specified as YYYY-ZZZZ in this package, the range specifies every single year in that closed interval. The GNU Shepherd home page is at: https://shepherding.services/ The GNU Shepherd is developed jointly with the GNU Guix project. Both are essential components in putting the pieces together to build the GNU system. Join us now! ** Hacking Using GNU Guix, you can enter a development environment by running: guix shell -D -f guix.scm or simply: guix shell The first time you obtain a copy of the repository, authenticate it by running: guix git authenticate \ 788a6d6f1d5c170db68aa4bbfb77024fdc468ed3 \ 3CE464558A84FDC69DB40CFB090B11993D9AEBB5 The command exits with zero on success, and errors out otherwise. It installs Git hooks such as subsequent invocations of ‘git pull’ and ‘git push’ will automatically authenticate it. ** Reporting bugs Please report bugs on Codeberg: https://codeberg.org/shepherd/shepherd/issues Alternatively, you can send bug reports by email to <bug-guix@gnu.org>, with "Shepherd" and the version number in the Subject line.