Hide Forgot
Description of problem: Trying to add Type=notify to system containers unit file in order to catch errors from runc start. # cat /etc/systemd/system/etcd.service [Unit] Description=Etcd Server After=network.target After=network-online.target Wants=network-online.target [Service] Type=notify ExecStart=/bin/runc start 'etcd' ExecStop=/bin/runc kill 'etcd' Restart=on-failure WorkingDirectory=/sysroot/ostree/deploy/rhel-atomic-host/var/lib/containers/atomic/etcd.0 RuntimeDirectory=etcd [Install] WantedBy=multi-user.target However, it ends up with "systemctl start etcd" hang. Steps to reproduce below, # atomic uninstall etcd # runc delete etcd # atomic install --system --name=etcd brew-pulp-docker01.web.prod.ext.phx2.redhat.com:8888/rhel7/etcd:latest # systemctl start etcd Only thing seems to get it working is to append -d to runc start in the unit file, but that causes both runc list and atomic containers list not correctly list the running containers. # rpm -q runc atomic runc-0.1.1-6.el7.x86_64 atomic-1.12.5-2.el7.x86_64 Developer confirmed that etcd is a sd-notify process, and the original etcd rpm uses Type=notify as well. # cat /usr/lib/systemd/system/etcd.service [Unit] Description=Etcd Server After=network.target After=network-online.target Wants=network-online.target [Service] Type=notify WorkingDirectory=/var/lib/etcd/ EnvironmentFile=-/etc/etcd/etcd.conf User=etcd # set GOMAXPROCS to number of processors ExecStart=/bin/bash -c "GOMAXPROCS=$(nproc) /usr/bin/etcd --name=\"${ETCD_NAME}\" --data-dir=\"${ETCD_DATA_DIR}\" --listen-client-urls=\"${ETCD_LISTEN_CLIENT_URLS}\"" Restart=on-failure LimitNOFILE=65536 [Install] WantedBy=multi-user.target
This one is still broken with the latest bits. Any progress?
See https://github.com/opencontainers/runc/pull/1308
Lokesh, this patch is now merged upstream, how do you think of rebasing runc in 7.3.4?
sure thing, I"ll rebase