Copyright © 2022 Oleg Pykhalov Create a PID file after containerd is ready to serve requests. Fixes . --- a/cmd/containerd/command/notify_linux.go 1970-01-01 03:00:01.000000000 +0300 +++ b/cmd/containerd/command/notify_linux.go 2022-07-02 04:42:35.553753495 +0300 @@ -22,15 +22,22 @@ sd "github.com/coreos/go-systemd/v22/daemon" "github.com/containerd/containerd/log" + + "os" + "strconv" ) // notifyReady notifies systemd that the daemon is ready to serve requests func notifyReady(ctx context.Context) error { + pidFile, _ := os.Create("/run/containerd/containerd.pid") + defer pidFile.Close() + pidFile.WriteString(strconv.FormatInt(int64(os.Getpid()), 10)) return sdNotify(ctx, sd.SdNotifyReady) } // notifyStopping notifies systemd that the daemon is about to be stopped func notifyStopping(ctx context.Context) error { + os.Remove("/run/containerd/containerd.pid") return sdNotify(ctx, sd.SdNotifyStopping) } ='tabs'> aboutsummaryrefslogtreecommitdiff
AgeCommit message (Expand)Author
2022-12-10install: 'umount-cow-store' retries upon EBUSY....Possibly fixes <https://issues.guix.gnu.org/59884>. * gnu/build/install.scm (umount*): New procedure. (unmount-cow-store): Use it instead of 'umount'. Ludovic Courtès
2022-11-15install: Validate symlink target in evaluate-populate-directive....* gnu/build/install.scm (evaluate-populate-directive): By default, error when the target of a symlink doesn't exist. Always ensure TARGET ends with "/". (populate-root-file-system): Call evaluate-populate-directive with #:error-on-dangling-symlink #t and add comment. Maxim Cournoyer
2020-12-15store-copy: 'populate-store' can optionally deduplicate files....Until now deduplication was performed as an additional pass after copying files, which involve re-traversing all the files that had just been copied. * guix/store/deduplication.scm (copy-file/deduplicate): New procedure. * tests/store-deduplication.scm ("copy-file/deduplicate"): New test. * guix/build/store-copy.scm (populate-store): Add #:deduplicate? parameter and honor it. * tests/gexp.scm ("gexp->derivation, store copy"): Pass #:deduplicate? #f to 'populate-store'. * gnu/build/image.scm (initialize-root-partition): Pass #:deduplicate? to 'populate-store'. Pass #:deduplicate? #f to 'register-closure'. * gnu/build/vm.scm (root-partition-initializer): Likewise. * gnu/build/install.scm (populate-single-profile-directory): Pass #:deduplicate? #f to 'populate-store'. * gnu/build/linux-initrd.scm (build-initrd): Likewise. * guix/scripts/pack.scm (self-contained-tarball)[import-module?]: New procedure. [build]: Pass it as an argument to 'source-module-closure'. * guix/scripts/pack.scm (squashfs-image)[build]: Wrap in 'with-extensions'. * gnu/system/linux-initrd.scm (expression->initrd)[import-module?]: New procedure. [builder]: Pass it to 'source-module-closure'. * gnu/system/install.scm (cow-store-service-type)[import-module?]: New procedure. Pass it to 'source-module-closure'. Ludovic Courtès
2020-09-02install: Factorize cow-store procedure....Move the cow-store procedure from the service declaration in (gnu system install) to (gnu build install), so that it can be called from within a different context than Shepherd. * gnu/build/install.scm (mount-cow-store, unmount-cow-store): New procedures. * gnu/system/install.scm (make-cow-store): Remove it, (cow-store-service-type): adapt it accordingly. Mathieu Othacehe