
Security News
The Changelog Podcast: Practical Steps to Stay Safe on npm
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.
An OCI container runtime monitor.
Conmon is a monitoring program and communication tool between a container manager (like Podman or CRI-O) and an OCI runtime (like runc or crun) for a single container.
Upon being launched, conmon (usually) double-forks to daemonize and detach from the parent that launched it. It then launches the runtime as its child. This allows managing processes to die in the foreground, but still be able to watch over and connect to the child process (the container).
While the container runs, conmon does two things:
Finally, upon the containers death, conmon will record its exit time and code to be read by the managing programs.
Written in C and designed to have a low memory footprint, conmon is intended to be run by a container managing library. Essentially, conmon is the smallest daemon a container can have.
In most cases, conmon should be packaged with your favorite container manager. However, if you'd like to try building it from source, follow the steps below.
These dependencies are required for the build:
sudo yum install -y \
gcc \
git \
glib2-devel \
glibc-devel \
make \
pkgconfig \
runc
sudo apt-get install \
gcc \
git \
libc6-dev \
libglib2.0-dev \
pkg-config \
make \
runc
Once all the dependencies are installed:
make
There are three options for installation, depending on your environment.
Each can have the PREFIX overridden. The PREFIX defaults to /usr/local
for most Linux distributions.
make install installs to $PREFIX/bin, for adding conmon to the
path.make podman installs to $PREFIX/libexec/podman, which is used to
override the conmon version that Podman uses.make crio installs to $PREFIX/libexec/crio, which is used to
override the conmon version that CRI-O uses.Note, to run conmon, you'll also need to have an OCI compliant runtime installed, like runc or crun.
It is possible to build a statically linked binary of conmon by using the officially provided nix package and the derivation of it within this repository. The builds are completely reproducible and will create a x86_64/amd64 stripped ELF binary for glibc.
To build the binaries by locally installing the nix package manager:
nix build -f nix/
An Ansible Role is also available to automate the installation of the above statically linked binary on its supported OS:
sudo su -
mkdir -p ~/.ansible/roles
cd ~/.ansible/roles
git clone https://github.com/alvistack/ansible-role-conmon.git conmon
cd ~/.ansible/roles/conmon
pip3 install --upgrade --ignore-installed --requirement requirements.txt
molecule converge
molecule verify
FAQs
Unknown package
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.

Security News
Experts push back on new claims about AI-driven ransomware, warning that hype and sponsored research are distorting how the threat is understood.

Security News
Ruby's creator Matz assumes control of RubyGems and Bundler repositories while former maintainers agree to step back and transfer all rights to end the dispute.