[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[shepherd] 03/06: system: Add 'getpgid'.
From: |
Ludovic Courtès |
Subject: |
[shepherd] 03/06: system: Add 'getpgid'. |
Date: |
Sat, 18 Apr 2020 11:13:45 -0400 (EDT) |
civodul pushed a commit to branch master
in repository shepherd.
commit 1b3172ae1fae91614431947fa759d497dbccdd65
Author: Ludovic Courtès <address@hidden>
AuthorDate: Sat Apr 18 16:28:29 2020 +0200
system: Add 'getpgid'.
* modules/shepherd/system.scm.in (getpgid): New procedure.
---
modules/shepherd/system.scm.in | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/modules/shepherd/system.scm.in b/modules/shepherd/system.scm.in
index 0b2cc9d..c715231 100644
--- a/modules/shepherd/system.scm.in
+++ b/modules/shepherd/system.scm.in
@@ -1,5 +1,5 @@
;; system.scm -- Low-level operating system interface.
-;; Copyright (C) 2013, 2014, 2016, 2018 Ludovic Courtès <address@hidden>
+;; Copyright (C) 2013, 2014, 2016, 2018, 2020 Ludovic Courtès <address@hidden>
;; Copyright (C) 2018 Carlo Zancanaro <address@hidden>
;; Copyright (C) 2020 Jan (janneke) Nieuwenhuizen <address@hidden>
;;
@@ -28,7 +28,8 @@
power-off
max-file-descriptors
prctl
- PR_SET_CHILD_SUBREAPER))
+ PR_SET_CHILD_SUBREAPER
+ getpgid))
;; The <sys/reboot.h> constants.
(define RB_AUTOBOOT @RB_AUTOBOOT@)
@@ -164,3 +165,15 @@ ctrlaltdel(8) and see kernel/reboot.c in Linux."
(define (max-file-descriptors)
"Return the maximum number of open file descriptors allowed."
(sysconf _SC_OPEN_MAX))
+
+(define getpgid
+ ;; Guile 3.0.2 and 2.2.7 lack 'getpgid'.
+ (let ((proc (syscall->procedure int "getpgid" (list int))))
+ (lambda (pid)
+ "Return the process group ID for process PID."
+ (let-values (((result err) (proc pid)))
+ (if (= 1 result)
+ (throw 'system-error "getpgid" "~A"
+ (list (strerror err))
+ (list err))
+ result)))))
- [shepherd] branch master updated (6b0e1e1 -> b5c164b), Ludovic Courtès, 2020/04/18
- [shepherd] 03/06: system: Add 'getpgid'.,
Ludovic Courtès <=
- [shepherd] 01/06: service: 'check-for-dead-services' uses 'catch-system-error'., Ludovic Courtès, 2020/04/18
- [shepherd] 04/06: service: 'make-kill-destructor' kills the process group., Ludovic Courtès, 2020/04/18
- [shepherd] 05/06: service: Introduce 'default-pid-file-timeout'., Ludovic Courtès, 2020/04/18
- [shepherd] 02/06: service: Terminate the progress group when the PID file doesn't show up., Ludovic Courtès, 2020/04/18
- [shepherd] 06/06: service: 'make-forkexec-constructor' no longer supports the 0.1 form., Ludovic Courtès, 2020/04/18