system/conmon: Added (Monitoring and Communication Tool).

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Vincent Batts 2019-10-26 18:25:27 +07:00 committed by Willy Sudiarto Raharjo
parent 70766775ee
commit c0088bd3be
4 changed files with 150 additions and 0 deletions

24
system/conmon/README Normal file
View file

@ -0,0 +1,24 @@
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, it 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:
Provides a socket for attaching to the container, holding open the
container's standard streams and forwarding them over the socket. Writes
the contents of the container's streams to a log file (or to the systemd
journal) so they can be read after the container's death.
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.

View file

@ -0,0 +1,98 @@
#!/bin/sh
# Slackware build script for conmon
# Copyright 2019 Gabriel Diaz, Madrid, Spain
# Copyright 2019 Vincent Batts, Raleigh, NC, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=conmon
REPONAME=conmon
VERSION=${VERSION:-2.0.1}
GIT_COMMIT="4dc8bcfec41e10ca760c8e2089474c2843dfd066"
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
# The domain part of the go package name, usually the hosting platform
DOMAIN=github.com
# The name of the organization/owner of the package
ORG=containers
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i586" ]; then
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
LIBDIRSUFFIX="64"
else
LIBDIRSUFFIX=""
fi
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $REPONAME-$VERSION
mkdir -p $REPONAME-$VERSION/src/$DOMAIN/$ORG
cd $REPONAME-$VERSION/src/$DOMAIN/$ORG
tar xvf $CWD/$REPONAME-$VERSION.tar.gz
mv $REPONAME-$VERSION $REPONAME
cd $REPONAME
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
# Point go to the location of the source tree
export GOPATH="$TMP/$REPONAME-$VERSION"
make podman DESTDIR="$PKG" PREFIX="/usr/" MANDIR="/usr/man/"
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
LICENSE README.md \
$PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

10
system/conmon/conmon.info Normal file
View file

@ -0,0 +1,10 @@
PRGNAM="conmon"
VERSION="2.0.1"
HOMEPAGE="https://github.com/containers/conmon"
DOWNLOAD="https://github.com/containers/conmon/archive/v2.0.1/conmon-2.0.1.tar.gz"
MD5SUM="72eea27a2ac98ec35611dd91ee786c70"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="Vincent Batts"
EMAIL="vbatts@hashbangbash.com"

18
system/conmon/slack-desc Normal file
View file

@ -0,0 +1,18 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
conmon: conmon (utility to run OCI-based containers)
conmon:
conmon: Conmon is a monitoring program and communication tool between a
conmon: container manager (like podman or CRI-O) and an OCI runtime (like
conmon: runc or crun) for a single container.
conmon:
conmon: Site: https://github.com/containers/conmon
conmon:
conmon:
conmon: