add cinit-0.3pre16

Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
This commit is contained in:
Nico Schottelius 2009-09-29 21:36:27 +02:00
parent 0a2c96848b
commit 0c13ed6979
1089 changed files with 101811 additions and 0 deletions

View file

@ -84,6 +84,9 @@ Additionally, the following other git ressources are available:
### Archives
* [[cinit-0.3pre16.tar.bz2|archives/cinit-0.3pre16.tar.bz2]]
([browse source](browse_source/cinit-0.3pre16/))
[[changes|browse_source/cinit-0.3pre16/doc/changes/0.3pre16]]
* [[cinit-0.3pre15.tar.bz2|archives/cinit-0.3pre15.tar.bz2]]
([browse source](browse_source/cinit-0.3pre15/))
[[changes|browse_source/cinit-0.3pre15/doc/changes/0.3pre15]]

Binary file not shown.

View file

@ -0,0 +1,4 @@
This is a non-existing file, how did you find it? ;-)
It seems like you know a bit about your system, perhaps
you want to join cinit development in #cLinux on irc.freenode.org?

View file

@ -0,0 +1,4 @@
--- !ditz.rubyforge.org,2008-03-06/config
name: Nico Schottelius
email: nico@ikn.schottelius.org
issue_dir: bugs

View file

@ -0,0 +1,31 @@
*.o
*.a
MT
ddoc
contrib+tools/cinit.graph.text
config.h
sbin
tmp
os/current
tmpbin
src/os/current
src/ipc/current
src/cinit
*.html
*.htm
*.man
*.texi
*.texi
*.docbook
src/halt.kill
src/poweroff.kill
src/reboot.kill
doc/man/*.[0-9]
doc/man/*.xml
src/cmd
.*.swp
.exclude
src/.configured
src/cinit.halt
src/cinit.poweroff
src/cinit.reboot

View file

@ -0,0 +1,135 @@
#
# 2005-2009 Nico Schottelius (nico-cinit at schottelius.org)
#
# This file is part of cinit.
#
# cinit is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cinit is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cinit. If not, see <http://www.gnu.org/licenses/>.
#
#
# Don't edit Makefiles, use conf/* for configuration.
#
# Directories and files
CDIRS=src doc
#
# Targets
#
#
# Warn per default, make sure the user knows what she does
#
warn:
@cat doc/.buildwarn
all: sources documentation
dev-all: all
install clean dist distclean:
@for subdir in ${CDIRS}; do \
echo "Making $@ in $$subdir"; \
(cd $$subdir && ${MAKE} ${MAKEFLAGS} $@) || break; \
done;
.PHONY: sources
sources:
${MAKE} -C src all
.PHONY: documentation
documentation:
${MAKE} -C doc documentation
install-miniconf:
./bin/cinit.install.miniconf
install-dir:
./bin/cinit.install.dir
config:
@./bin/cinit.configure.os
@./bin/cinit.configure.tools
@./bin/cinit.configure.ipc
@touch src/.configured
################################################################################
# Tests
#
tests:
# does not work, due getting killed, due to design :-)
#./scripts/internal/compile_run_as_compiler.sh
./scripts/internal/test_on_hosts.sh ./scripts/internal/compile_test.sh
DEBIAN=lenny
UMLDIR=test/uml
CONFDIR=etc/cinit/
uml-install-debian:
mkdir -p $(UMLDIR)
sudo /usr/sbin/debootstrap $(DEBIAN) $(UMLDIR)
me=$$(whoami); sudo chown -R $$me $(UMLDIR)
# only install binaries, no need to test documentation
uml-install-config:
rsync -av --delete ./$(CONFDIR) $(UMLDIR)/$(CONFDIR)
uml-install-cinit:
dir=$$(cd $(UMLDIR); pwd -P); make -C src DESTDIR=$$dir install
uml-run: uml-install-config
dir=$$(cd $(UMLDIR); pwd -P); linux root=/dev/root rootflags=$$dir rootfstype=hostfs init=/sbin/cinit
uml-run-sysv:
dir=$$(cd $(UMLDIR); pwd -P); linux root=/dev/root rootflags=$$dir rootfstype=hostfs
# debian-etch
de-install:
rsync -av --delete ./ root@de:cinit
rsync -av --delete ./etc/cinit/ root@de:/etc/cinit
ssh root@de '(cd cinit; make clean install)'
de-run:
ssh root@de reboot
UBUNTUHOST=cinit@192.168.122.2
UBUNTUCONF=./etc/cinit-ubuntu
UBUNTUINSTALL="cd cinit && make clean && sudo make install"
UBUNTUTEST="sudo reboot"
ubuntu-install:
rsync -av --delete ./ $(UBUNTUHOST):cinit
# rsync -av --delete ./$(UBUNTUCONF) $(UBUNTUHOST):/etc/cinit
ssh "$(UBUNTUHOST)" $(UBUNTUINSTALL)
ubuntu-test: ubuntu-install
ssh "$(UBUNTUHOST)" $(UBUNTUTEST)
################################################################################
#
# Developer targets
#
release: ./scripts/internal/cinit.release
./scripts/internal/cinit.release now
scripts/internal/cinit.release: ./scripts/internal/test-cmd.sh
./scripts/internal/test-cmd.sh
WEBFILE=~/privat/computer/net/netzseiten/www.nico.schottelius.org/src/software/cinit.mdwn
.PHONY: web
web: README
cp $< $(WEBFILE)
cinitconfconfdir=../cinit-conf/conf
sync-conf:
rsync --delete -av ./conf/ $(cinitconfconfdir)
cd $(cinitconfconfdir); git add .; git commit -m "sync with cinit/conf"

View file

@ -0,0 +1,232 @@
cinit is a fast, small and simple init with support for profiles
## Introduction
cinit is a fast init system with dependency features and
profile support. It was orientated on the design of
Richard Goochs
[need concept](http://www.atnf.csiro.au/people/rgooch/linux/boot-scripts/)
and Felix von Leitners
[minit](http://www.fefe.de/minit/).
Minit does not support real dependencies (you don't know whether the
service you depend on really started) and the need concept is somehow
slow (as seen in gentoo).
In addition, minit needs libowfat and dietlibc, which may not be found
on every Unix system.
### Cinit main features
* portability: it should run on every Unix
* true dependencies (soft and hard!)
* parallel execution
* highly customisable (see conf/*)
* profile support (specify what services to start depending on the profile)
### Why should I use cinit?
* To significant speedup the startup process
* To use highest level of parallelisation at startup
* To benefit from real dependencies (so called ***needs*** and ***wants***)
* To easily create profiles that can be chosen at startup (even **before** init is started!)
### How does cinit work?
Cinit creates a dependency tree at startup and executes the services.
A service can have two type of dependencies:
* ***wants*** describe soft dependencies (i.e. it's not fatal if the wanted service fails to start)
* ***needs*** describe hard dependencies (if the needed service fails, the depending won't be started)
Let's have a look at an example:
A
(wants)
/ \
|------> B \ C
| / \ / \
^ (needs) (needs) (wants)
| D E F
| |
|------<------(needs)----|
Or in words:
* B and C do not have dependencies
* They will be started at the beginning
* A wants B and C
* A waits until B and C are executed and started afterwards,
independently of the success of B and C
* A will also be started, if B and C fail to start.
* D needs B
* D will only be started, if B is successfully started
* E needs B and C
* E will only be started, if both B and C are successfully started
* F wants C and needs B
* F will only be started, if B is successfully started
* F waits until C is started and is started afterwards
## Getting cinit
### Development versions
You can get the latest (development) version via git:
git clone git://git.schottelius.org/cLinux/cinit.git
Additionally, the following other git ressources are available:
* [Gitweb](http://git.schottelius.org/?p=cLinux/cinit.git;a=summary).
* [Mirror at github](http://github.com/telmich/cinit)
* [Mirror at gitorious](http://gitorious.org/cinit)
### Archives
* [[cinit-0.3pre16.tar.bz2|archives/cinit-0.3pre16.tar.bz2]]
([browse source](browse_source/cinit-0.3pre16/))
[[changes|browse_source/cinit-0.3pre16/doc/changes/0.3pre16]]
* [[cinit-0.3pre15.tar.bz2|archives/cinit-0.3pre15.tar.bz2]]
([browse source](browse_source/cinit-0.3pre15/))
[[changes|browse_source/cinit-0.3pre15/doc/changes/0.3pre15]]
* [[cinit-0.3pre14.tar.bz2|archives/cinit-0.3pre14.tar.bz2]]
([browse source](browse_source/cinit-0.3pre14/))
[[changes|browse_source/cinit-0.3pre14/CHANGES]]
* [[cinit-0.3pre13.tar.bz2|archives/cinit-0.3pre13.tar.bz2]]
([browse source](browse_source/cinit-0.3pre13/))
[[changes|browse_source/cinit-0.3pre13/CHANGES]]
* [[cinit-0.3pre12.tar.bz2|archives/cinit-0.3pre12.tar.bz2]]
([browse source](browse_source/cinit-0.3pre12/))
[[changes|browse_source/cinit-0.3pre12/CHANGES]]
* [[cinit-0.3pre11.tar.bz2|archives/cinit-0.3pre11.tar.bz2]]
([browse source](browse_source/cinit-0.3pre11/))
[[changes|browse_source/cinit-0.3pre11/CHANGES]]
* [[cinit-0.3pre10.tar.bz2|archives/cinit-0.3pre10.tar.bz2]]
([browse source](browse_source/cinit-0.3pre10/))
[[changes|browse_source/cinit-0.3pre10/CHANGES]]
* [[cinit-0.3pre9.tar.bz2|archives/cinit-0.3pre9.tar.bz2]]
([browse source](browse_source/cinit-0.3pre9/))
[[changes|browse_source/cinit-0.3pre9/CHANGES]]
* [[cinit-0.3pre8.tar.bz2|archives/cinit-0.3pre8.tar.bz2]]
([browse source](browse_source/cinit-0.3pre8/))
[[changes|browse_source/cinit-0.3pre8/CHANGES]]
* [[cinit-0.3pre7.tar.bz2|archives/cinit-0.3pre7.tar.bz2]]
([browse source](browse_source/cinit-0.3pre7/))
[[changes|browse_source/cinit-0.3pre7/CHANGES]]
* [[cinit-0.3pre6.tar.bz2|archives/cinit-0.3pre6.tar.bz2]]
([browse source](browse_source/cinit-0.3pre6/))
[[changes|browse_source/cinit-0.3pre6/CHANGES]]
* [[cinit-0.3pre5.tar.bz2|archives/cinit-0.3pre5.tar.bz2]]
([browse source](browse_source/cinit-0.3pre5/))
[[changes|browse_source/cinit-0.3pre5/CHANGES]]
* [[cinit-0.3pre4.tar.bz2|archives/cinit-0.3pre4.tar.bz2]]
([browse source](browse_source/cinit-0.3pre4/))
[[changes|browse_source/cinit-0.3pre4/CHANGES]]
* [[cinit-0.3pre3.tar.bz2|archives/cinit-0.3pre3.tar.bz2]]
([browse source](browse_source/cinit-0.3pre3/))
[[changes|browse_source/cinit-0.3pre3/CHANGES]]
* [[cinit-0.3pre2.tar.bz2|archives/cinit-0.3pre2.tar.bz2]]
([browse source](browse_source/cinit-0.3pre2/))
[[changes|browse_source/cinit-0.3pre2/CHANGES]]
* [[cinit-0.3pre1.tar.bz2|archives/cinit-0.3pre1.tar.bz2]]
([browse source](browse_source/cinit-0.3pre1/))
[[changes|browse_source/cinit-0.3pre1/CHANGES]]
* [[cinit-0.2.1.tar.bz2|archives/cinit-0.2.1.tar.bz2]]
([browse source](browse_source/cinit-0.2.1/))
[[changes|browse_source/cinit-0.2.1/CHANGES]]
* [[cinit-0.2.tar.bz2|archives/cinit-0.2.tar.bz2]]
([browse source](browse_source/cinit-0.2/))
[[changes|browse_source/cinit-0.2/CHANGES]]
* [[cinit-0.1.tar.bz2|archives/cinit-0.1.tar.bz2]]
([browse source](browse_source/cinit-0.1/))
[[changes|browse_source/cinit-0.1/CHANGES]]
* [[cinit-0.0.8.tar.bz2|archives/cinit-0.0.8.tar.bz2]]
([browse source](browse_source/cinit-0.0.8/))
[[changes|browse_source/cinit-0.0.8/CHANGES]]
* [[cinit-0.0.7.tar.bz2|archives/cinit-0.0.7.tar.bz2]]
([browse source](browse_source/cinit-0.0.7/))
[[changes|browse_source/cinit-0.0.7/CHANGES]]
* [[cinit-0.0.6.tar.bz2|archives/cinit-0.0.6.tar.bz2]]
([browse source](browse_source/cinit-0.0.6/))
[[changes|browse_source/cinit-0.0.6/CHANGES]]
* [[cinit-0.0.5.tar.bz2|archives/cinit-0.0.5.tar.bz2]]
([browse source](browse_source/cinit-0.0.5/))
[[changes|browse_source/cinit-0.0.5/CHANGES]]
* [[cinit-0.0.4.tar.bz2|archives/cinit-0.0.4.tar.bz2]]
([browse source](browse_source/cinit-0.0.4/))
[[changes|browse_source/cinit-0.0.4/CHANGES]]
## Documentation
The documentation is currently spread all over the ***doc/*** directory
within the tarball and is being cleaned up. Additionally there
are two presentations available:
* [[2005-10-22: (German) speech at Technophil|software/cinit/speeches/2005-10-22]]
* [[2005-08-06: (German) online speech|software/cinit/speeches/2005-08-06]]
### Pre-Configuring
If you want to fine tune cinit parameters, add different path names,
change the DESTDIR, ... have a look at conf/*.
### Installing cinit
You can install cinit parallel to any other init-system, it won't
kill other init's config nor /sbin/init, if it exists:
# make all install
This will create /sbin/cinit.
If /sbin/init does not exist, it will be linked to /sbin/cinit.
### Configuring cinit
You'll have to configure cinit in /etc/cinit and add services,
before you can use it.
Please read doc/configuring.cinit for details.
Please read doc/FAO if there are still questions open.
There are some testing examples below doc/examples/, to be used
as a starting point.
There are currently no tools to merge your existing init-system
to cinit (like sysvinit-merge, bsd-merge or minit-merge) available,
but they are in the making (see various bugs in ditz).
### Configuring the OS / Kernel
After configuring cinit you need to tell your kernel to boot cinit instead
of your current init system. How to do that depends on your system:
* Linux/LILO and Linux/yaboot (ppc):
* append="init=/sbin/cinit"
* grub1 and grub2:
* kernel <normal kernel specification> init=/sbin/cinit
## Support
### IRC
You can join the development ***IRC channel***
[#cLinux on irc.freenode.org](irc://irc.freenode.org/#cLinux).
### Mailing list
Bug reports, questions, patches, etc. should be send to the
[cinit mailing list](http://l.schottelius.org/mailman/listinfo/cinit).
## Related websites
* [cinit](http://www.nico.schottelius.org/software/cinit/)
* [cinit mailing list](http://l.schottelius.org/mailman/listinfo/cinit)
* BSD init systems (same codebase):
* [FreeBSDs init](http://www.freebsd.org/cgi/cvsweb.cgi/src/sbin/init/)
* [NetBSDs init](http://cvsweb.netbsd.org/bsdweb.cgi/src/sbin/init/)
* [OpenBSDs init](http://www.openbsd.org/cgi-bin/cvsweb/src/sbin/init/)
* [initng](http://www.initng.org/)
* [minit](http://www.fefe.de/minit/)
* [runit](http://smarden.org/runit/)
* [need/simpleinit](http://www.atnf.csiro.au/~rgooch/linux/boot-scripts/)
* [sys-v-init](ftp://ftp.cistron.nl/pub/people/miquels/sysvinit/)
* [upstart](http://www.netsplit.com/blog/work/canonical/upstart.html)
[[!tag unix]]

View file

@ -0,0 +1,42 @@
#!/bin/sh
#
# 2005-2008 Nico Schottelius (nico-cinit-conf at schottelius.org)
#
# This file is part of cinit-conf.
#
# cinit-conf is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cinit-conf is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cinit-conf. If not, see <http://www.gnu.org/licenses/>.
#
# cinit: read configuration into variables
# Date: 2005-05-24 (Last Changed: 2005-08-08)
#
hier="${0%/*}"
# try environment first
if [ "$CINIT_CONF_CONF_DIR" ]; then
CONFDIR=$CINIT_CONF_CONF_DIR
elif [ -d "${hier}/../conf/" ]; then
CONFDIR="${hier}/../conf/"
elif [ -d "/etc/cinit-conf/" ]; then
CONFDIR="/etc/cinit-conf/"
else
echo 'Did not find cinit-conf configuration!' >&2
echo "Please set the variable CINIT_CONF_CONF_DIR" >&2
exit 1
fi
CONFDIR=$(cd "${CONFDIR}" && pwd -P)
echo $CONFDIR

View file

@ -0,0 +1,26 @@
#!/bin/sh
# Nico Schottelius
# cinit: find binary in path
# Date: 2005-10-15
#
set -e
if [ $# -ne 1 ]; then
echo "$(basename $0): searched binary"
exit 1
fi
binary=$1
# this is NOT really clean, paths can also contain spaces
# FIXME: use awk or similar
for pfad in $(echo $PATH | sed 's/:/ /g'); do
fullname=$pfad/$binary
if [ -f "$fullname" ]; then
echo "$fullname"
exit 0
fi
done
exit 1

View file

@ -0,0 +1,53 @@
#!/bin/sh
#
# 2008 Nico Schottelius (nico-cinit-conf at schottelius.org)
#
# This file is part of cinit-conf.
#
# cinit-conf is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cinit-conf is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cinit-conf. If not, see <http://www.gnu.org/licenses/>.
#
hier="${0%/*}"
: ${CONFDIR:="$("${hier}/cinit-conf.get-confdir")"}
# read general values and overwrite specific ones later
for conf in ${CONFDIR}/*; do
NAME="$(basename $conf | tr a-z A-Z)"
# short version
eval : \${$NAME:=$(head -n1 "${conf}")}
# long version
#if eval test -z \$$NAME; then
# eval $NAME=\"$(head -n 1 $conf)\"
# eval export $NAME
#fi
# eval echo $NAME = \$$NAME
done
# comment out: generated automatically now
#: ${DESTDIR="$(head -n1 "${CONFDIR}/destdir")"}
#: ${SERVICE_CATEGORIES="$(head -n1 "${CONFDIR}/service_categories")"}
#: ${GETTYDIR="${SVCDIR}/$(head -n1 "${CONFDIR}/gettydir")"}
#: ${INSTALL_PROG="$(head -n1 "${CONFDIR}/install_prog")"}
#: ${INSTALL_DIRECTORY="$(head -n1 "${CONFDIR}/install_directory")"}
#: ${C_ON="$(head -n1 "${CONFDIR}/c_on")"}
#: ${C_PARAMS="$(head -n1 "${CONFDIR}/c_params")"}
#: ${C_RESPAWN="$(head -n1 "${CONFDIR}/c_respawn")"}
# overwrite or set: add destdir and put things together
# R_* = real = should be used in scripts
: ${R_CINIT_DIR:="${DESTDIR}/${CINIT_DIR}"}
: ${R_CINITCONF_DIR:="${R_CINIT_DIR}/${CINITCONFDIR}"}
: ${R_SVC_DIR:="${R_CINIT_DIR}/${SVCDIR}"}

View file

@ -0,0 +1,11 @@
#!/bin/sh
# Nico Schottelius
# cinit: install standard sub-configuration directories
# Date: 2005-08-07
#
. $(dirname $0)/cinit-conf.read-conf
for svc in $SERVICE_CATEGORIES; do
"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${R_SVC_DIR}/${svc}"
done

View file

@ -0,0 +1,41 @@
#!/bin/sh
# Nico Schottelius
# cinit: create templates
# 2005-05-24
set -e
# init variables
. $(dirname $0)/cinit-conf.read-conf
if [ $# -lt 1 ]; then
echo "`basename $0`: service-name(s)"
echo " I do create templates for your services"
exit 1
fi
BASEDIR="${DESTDIR}/${CINIT_DIR}"
for svc in $@; do
INSTDIR="${BASEDIR}/${svc}"
if [ -e "$INSTDIR" ]; then
echo "$svc already exists, skipping."
continue
fi
echo -n "Creating $svc ..."
# install creates needed parent directories
"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${INSTDIR}/${C_NEEDS}"
echo "The services this services really needs (it will not start if one failed to start)." > "${INSTDIR}/${C_NEEDS}/README"
"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${INSTDIR}/${C_WANTS}"
echo "The services this services wants (it will start if one or more fail)." > "${INSTDIR}/${C_WANTS}/README"
echo '#!/bin/sh' > "${INSTDIR}/${C_ON}"
echo "echo This should be a link to an executable or a script" >> "${INSTDIR}/${C_ON}"
chmod 0700 "${INSTDIR}/${C_ON}"
echo "One paramater on each line." > "${INSTDIR}/${C_ON}${C_PARAMS}"
echo "Delete me, if there are no paramaters." > "${INSTDIR}/${C_ON}${C_PARAMS}"
echo "Environtment: varx=valuex, one variable on each line." > "${INSTDIR}/${C_ON}${C_ENV}"
echo "Delete me, if you do not want to set any variables." > "${INSTDIR}/${C_ON}${C_ENV}"
echo "finished."
done

View file

@ -0,0 +1,120 @@
#!/bin/sh
#
# 2008 Nico Schottelius (nico-cinit-conf at schottelius.org)
#
# This file is part of cinit-conf.
#
# cinit-conf is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cinit-conf is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cinit-conf. If not, see <http://www.gnu.org/licenses/>.
#
# cinit: create dependency: service a needs or wants service b
#
set -x
# initialise cinit-conf framework
hier="${0%/*}"; set -e; . "${hier}/cinit-conf.read-conf"
if [ $# -ne 3 ]; then
echo "`basename $0`: service_A [wants|needs] service_B"
echo ""
echo " Service A needs or wants Service B."
echo " You must specify whether to use wants or needs."
echo ""
exit 23
fi
SVC_A="$1"
DEP="$2"
SVC_B="$3"
# adding 'wishes' for x-mas and requires for 'the mass' and 'tv'
case "${DEP}" in
wishes|wants) DEP="$C_WANTS" ;;
needs|requires) DEP="$C_NEEDS" ;;
*) echo "Use \"want\" or \"need\" as type of dependency."
esac
# First of all create absolute paths
# if SVC_X beginning matches R_CINIT_DIR it is absolute
# else it is relative to R_CINIT_DIR
echo "${SVC_A}" | grep "^${R_SVC_DIR}" >/dev/null || SVC_A="${R_SVC_DIR}/${SVC_A}"
echo "${SVC_B}" | grep "^${R_SVC_DIR}" >/dev/null || SVC_B="${R_SVC_DIR}/${SVC_B}"
SVC_A_ABS=$(cd "${SVC_A}" && pwd -P)
SVC_B_ABS=$(cd "${SVC_B}" && pwd -P)
SVC_A_REL="${SVC_A_ABS##*/}"
SVC_B_REL="${SVC_B_ABS##*/}"
set +e
match=""
count="0"
svc_stripped="$(echo $SVC_A_ABS | sed -e 's;/$;;' -e 's;/[^/]*$;;')"
while [ "$svc_stripped" ]; do
match="$(echo ${SVC_B_ABS} | grep "^${svc_stripped}")"
count=$(($count+1))
if [ "$match" ]; then
relpath=""
while [ "$count" -gt 0 ]; do
source="../${source}"
count=$(($count-1))
done
source="${source}${SVC_B_REL}"
break
fi
svc_stripped="$(echo $svc_stripped | sed -e 's;/$;;' -e 's;/[^/]*$;;')"
done
# nothing in common? link absolute
if [ ! "$match" ]; then
source="${SVC_B_ABS}"
fi
# Then find out the level of subdirs, excluding destdir!
# FIXME: could someone PLEASE simplify that?
#SLASHES=$(echo $SVC_A | sed -e 's,/$,,' -e 's,[^/],,g' -e 's,/,../,g' -e 's,^,../../,')
# find common anchor and link after that:
# /destdir/etc/cinit/svc/svca/b/
# /destdir/etc/cinit/svc/svca/c/
# results in ../c/
# Thus:
# while unmatched
# remove /* (one level, shortest match)
#
# 1. remove destdir, if present 2. remove everything but the slashes 3. replace them with ../
#
SLASHES=$(echo $SVC_A | sed -e "s;^$DESTDIR;;" -e 's,/$,,' -e 's,[^/],,g' -e 's,/,../,g' -e 's,^,../../,')
DEST_NAME=$(echo $SVC_A | sed -e 's,/$,,' -e 's,/,-,g')
SOURCE="${SLASHES}${SVC_B}"
DEP_DIR="${SVC_A}/${DEP}"
if [ ! -d "$DEP_DIR" ]; then
echo "$DEP_DIR does not exist, creating..."
mkdir "$DEP_DIR"
if [ $? -ne 0 ]; then
echo "Error occured due to creating directory. Exiting."
exit 1
fi
fi
DEST="${DEP_DIR}/${DEST_NAME}"
echo -n "Linking ${source} to ${DEST} ... "
ln -sf "${source}" "${DEST}"
echo "finished."

View file

@ -0,0 +1,40 @@
#!/bin/sh
# Nico Schottelius
# cinit: install service: init
# Date: 2005-10-15
#
set -e
. $(dirname $0)/cinit-conf.read-conf
if [ $# -ne 3 ]; then
echo "$(basename $0): name device filesystem-type"
exit 1
fi
NAME=$1
DEVICE=$2
FS_TYPE=$3
FSCK="/sbin/fsck.${FS_TYPE}"
if [ ! -f "$FSCK" ]; then
echo "Missing $FSCK, abort."
exit 1
fi
if [ ! -e "${DESTDIR}${DEVICE}" ]; then
echo "Warning: ${DESTDIR}${DEVICE} does not exist."
fi
svcdir="${R_SVC_DIR}/fsck/${NAME}"
if [ -e "$svcdir" ]; then
echo "Error: $svcdir already exists"
exit 1
fi
set -e
"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${svcdir}"
ln -sf "${FSCK}" "${svcdir}/$C_ON"
echo "$DEVICE" > "${svcdir}/$C_ON$C_PARAMS"

View file

@ -0,0 +1,75 @@
#!/bin/sh
# Nico Schottelius
# cinit: create gettys
# Date: 2005-05-24 (Last changed: 2005-08-07)
#
set -e
# init variables
. "$(dirname $0)/cinit-conf.read-conf"
BASEDIR="${R_SVC_DIR}/${GETTYDIR}"
LAST_NUMBER=$(cd "$BASEDIR" && ls | awk '/^((0[xX])[0-9a-fA-F]+)|([0-9]+)$/ { print }' | sort -n | tail -n 1)
[ ! "$LAST_NUMBER" ] && LAST_NUMBER=0
NUMBER=$(echo $LAST_NUMBER + 1 | bc)
[ ! "$NUMBER" ] && NUMBER=1
DDIR=$BASEDIR/$NUMBER
#echo "Creating getty number $NUMBER in $DDIR ..."
if [ "$USE_THIS_GETTY" ]; then
GETTYS="$USE_THIS_GETTY"
else
GETTYS=`echo /sbin/*getty*`
fi
for getty in $GETTYS; do
case $getty in
*/fgetty|*/mingetty)
mygetty=$getty
params="/dev/tty${NUMBER}"
;;
*/agetty|*/getty)
mygetty=$getty
params="38400 tty${NUMBER} linux"
;;
*/mgetty)
mygetty=$getty
params="38400 tty${NUMBER}"
;;
*)
echo "Unknown Getty type $getty"
echo "Please report standard parameters to me."
esac
[ "$mygetty" ] && break
done
# check input
if [ ! "$mygetty" ]; then
read -p "Getty to use [$mygetty]: " rgetty
fi
if [ ! "$params" ]; then
read -p "Parameters to pass [$params]: " rparams
fi
if [ ! "$params" -o ! "$mygetty" ]; then
echo "Sorry, either getty or parameters are not supplied."
exit 23
fi
echo -n "Creating $mygetty ($params) in $DDIR ... "
"$INSTALL_PROG" "$INSTALL_DIRECTORY" "$DDIR"
ln -s "$mygetty" "$DDIR/$C_ON"
for param in $params; do
echo $param >> "$DDIR/${C_ON}${C_PARAMS}"
done
touch "$DDIR/$C_RESPAWN"
echo "finished."

View file

@ -0,0 +1,25 @@
#!/bin/sh
# Nico Schottelius
# cinit: create gettys
# init variables
. $(dirname $0)/cinit-conf.read-conf
BASEDIR="$DESTDIR/$CINIT_DIR/$GETTY_DIR"
NUMBER=$(cd $BASEDIR && ls | awk '/^((0[xX])[0-9a-fA-F]+)|([0-9]+)$/ { print }' | tail -n 1)
if [ ! "$NUMBER" ]; then
echo "There is no getty to remove."
exit 1
fi
DDIR="$BASEDIR/$NUMBER"
echo "Removing getty number $NUMBER located in $DDIR ..."
read -p "Are you sure [y/N]? " yes
if [ "$yes" = "y" ]; then
rm -r "$DDIR"
else
echo "Aborted."
fi

View file

@ -0,0 +1,22 @@
#!/bin/sh
# Nico Schottelius
# cinit: install service, which sets the hostname
# Date: 2005-10-15
#
set -e
. $(dirname $0)/cinit-conf.read-conf
if [ $# -ne 1 ]; then
echo "$(basename $0): hostname"
exit 1
fi
HOSTNAME="$1"
: ${HOSTNAME_BIN:=/bin/hostname}
"$INSTALL_PROG" "$INSTALL_DIRECTORY" \
"${R_SVC_DIR}/network/hostname"
ln -sf "$HOSTNAME_BIN" "${R_SVC_DIR}/network/hostname/$C_ON"
echo "$HOSTNAME" > "${R_SVC_DIR}/network/hostname/$C_ON$C_PARAMS"

View file

@ -0,0 +1,14 @@
#!/bin/sh
# Nico Schottelius
# cinit: install needed directories
# Date: - (Last Modified: 2005-08-06)
#
. $(dirname $0)/cinit-conf.read-conf
set -e
"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${R_CINITCONF_DIR}"
"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${R_SVC_DIR}"
# init must be there. always.
"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${R_SVC_DIR}/init"

View file

@ -0,0 +1,15 @@
#!/bin/sh
# Nico Schottelius
# cinit: add standard sub-configuration directories to init wants
# Date: 2005-10-11
#
set -e
. $(dirname $0)/cinit-conf.read-conf
$(dirname $0)/cinit-conf.add.dependency init wants getty
$(dirname $0)/cinit-conf.add.dependency init wants local-services
$(dirname $0)/cinit-conf.add.dependency init wants local-tuning
$(dirname $0)/cinit-conf.add.dependency init wants mount
$(dirname $0)/cinit-conf.add.dependency init wants network

View file

@ -0,0 +1,43 @@
#!/bin/sh
# Nico Schottelius
# cinit: install keymap from environment setting
# Date: 2005-10-15
#
. $(dirname $0)/cinit-conf.read-conf
set -e
if [ $# -ne 0 ]; then
echo "$(basename $0) (no args)"
exit 1
fi
if [ -z "$C_KEYMAP" ]; then
echo "Set C_KEPMAP to the wanted keymap."
exit 1
fi
if [ -d "${DESTDIR}/${CINIT_DIR}/local-tuning/keymap" ]; then
echo "Service keymap already exists."
exit 1
fi
BINARY_PATH=$($(dirname $0)/cinit.path-find loadkeys)
if [ $? -ne 0 ]; then
echo "Did not find binary loadkeys."
exit 1
fi
echo -n "Installing keymap to ${DESTDIR}/${CINIT_DIR}/local-tuning/keymap ..."
"$INSTALL_PROG" "$INSTALL_DIRECTORY" \
"${DESTDIR}/${CINIT_DIR}/local-tuning/keymap"
ln -sf "$BINARY_PATH" "${DESTDIR}/${CINIT_DIR}/local-tuning/keymap/$C_ON"
echo "$C_KEYMAP" >> "${DESTDIR}/${CINIT_DIR}/local-tuning/keymap/$C_ON$C_PARAMS"
echo "finished."
exit 0

View file

@ -0,0 +1,18 @@
#!/bin/sh
# Nico Schottelius
# cinit: install service: loopback device
# Date: 2005-08-07
#
. $(dirname $0)/cinit-conf.read-conf
set -e
# - mount /proc
"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${DESTDIR}/${CINIT_DIR}/network/lo"
ln -sf /sbin/ifconfig "${DESTDIR}/${CINIT_DIR}/network/lo/$C_ON"
echo lo > "${DESTDIR}/${CINIT_DIR}/network/lo/${C_ON}${C_PARAMS}"
echo 127.0.0.1/8 >> "${DESTDIR}/${CINIT_DIR}/network/lo/${C_ON}${C_PARAMS}"
echo up >> "${DESTDIR}/${CINIT_DIR}/network/lo/${C_ON}${C_PARAMS}"
exit 0

View file

@ -0,0 +1,22 @@
#!/bin/sh
#
# 2008 Nico Schottelius (nico-cinit-conf at schottelius.org)
#
# This file is part of cinit-conf.
#
# cinit-conf is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cinit-conf is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cinit-conf. If not, see <http://www.gnu.org/licenses/>.
#
# FIXME: Skip ^#!, make for generic mounts!
awk '$2 ~ /^\/$/ { print $0 }' < /etc/fstab

View file

@ -0,0 +1,19 @@
#!/bin/sh
# Nico Schottelius
# cinit: install service: mount /proc
# Date: 2005-08-07
#
. $(dirname $0)/cinit-conf.read-conf
set -e
# - mount /proc
"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${DESTDIR}/${CINIT_DIR}/mount/proc"
ln -sf /bin/mount "${DESTDIR}/${CINIT_DIR}/mount/proc/$C_ON"
echo proc > "${DESTDIR}/${CINIT_DIR}/mount/proc/${C_ON}${C_PARAMS}"
echo -t >> "${DESTDIR}/${CINIT_DIR}/mount/proc/${C_ON}${C_PARAMS}"
echo proc >> "${DESTDIR}/${CINIT_DIR}/mount/proc/${C_ON}${C_PARAMS}"
echo /proc >> "${DESTDIR}/${CINIT_DIR}/mount/proc/${C_ON}${C_PARAMS}"
exit 0

View file

@ -0,0 +1,17 @@
#!/bin/sh
# Nico Schottelius
# cinit: install service: mount root r/w
# Date: 2005-08-07
#
set -e
. $(dirname $0)/cinit-conf.read-conf
# mount root read/write
"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${R_SVC_DIR}/mount/root"
ln -sf /bin/mount "${R_SVC_DIR}/mount/root/$C_ON"
echo -n > "${R_SVC_DIR}/mount/root/${C_ON}${C_PARAMS}"
echo -o >> "${R_SVC_DIR}/mount/root/${C_ON}${C_PARAMS}"
echo remount,rw >> "${R_SVC_DIR}/mount/root/${C_ON}${C_PARAMS}"
echo / >> "${R_SVC_DIR}/mount/root/${C_ON}${C_PARAMS}"

View file

@ -0,0 +1,43 @@
#!/bin/sh
# Nico Schottelius
# cinit: install swap
# Date: 2005-10-15
#
. $(dirname $0)/cinit-conf.read-conf
SERVICE=mount/swap
if [ $# -ne 0 ]; then
echo "$(basename $0) (no args)"
exit 1
fi
BINARY=swapon
BINARY_PATH=$($(dirname $0)/cinit.path-find $BINARY)
if [ $? -ne 0 ]; then
echo "Did not find binary $BINARY."
exit 1
fi
HAS_SWAP=$(awk '$3 ~ /swap/ { print $3 }' /etc/fstab)
if [ -z "$HAS_SWAP" ]; then
echo "Seems you have no swap, service not installing"
exit 1
fi
if [ -d "${DESTDIR}/${CINIT_DIR}/${SERVICE}" ]; then
echo "Service ${SERVICE} already exists."
exit 1
fi
echo -n "Installing ${SERVICE} to ${DESTDIR}${CINIT_DIR}/${SERVICE} ..."
"$INSTALL_PROG" "$INSTALL_DIRECTORY" \
"${DESTDIR}/${CINIT_DIR}/${SERVICE}"
ln -sf "$BINARY_PATH" "${DESTDIR}/${CINIT_DIR}/${SERVICE}/$C_ON"
echo "-a" >> "${DESTDIR}/${CINIT_DIR}/${SERVICE}/$C_ON$C_PARAMS"
echo "finished."
exit 0

View file

@ -0,0 +1,19 @@
#!/bin/sh
# Nico Schottelius
# cinit: install service: mount /sys
# Date: 2005-08-07
#
. $(dirname $0)/cinit-conf.read-conf
set -e
# - mount /sys
"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${DESTDIR}/${CINIT_DIR}/mount/sys"
ln -sf /bin/mount "${DESTDIR}/${CINIT_DIR}/mount/sys/$C_ON"
echo sys > "${DESTDIR}/${CINIT_DIR}/mount/sys/${C_ON}${C_PARAMS}"
echo -t >> "${DESTDIR}/${CINIT_DIR}/mount/sys/${C_ON}${C_PARAMS}"
echo sysfs >> "${DESTDIR}/${CINIT_DIR}/mount/sys/${C_ON}${C_PARAMS}"
echo /sys >> "${DESTDIR}/${CINIT_DIR}/mount/sys/${C_ON}${C_PARAMS}"
exit 0

View file

@ -0,0 +1,20 @@
#!/bin/sh
# Nico Schottelius
# cinit: install service: cleanup mtab
# Date: 2005-08-07
#
. $(dirname $0)/cinit-conf.read-conf
set -e
# - mount /proc
"$INSTALL_PROG" "$INSTALL_DIRECTORY" \
"${DESTDIR}/${CINIT_DIR}/local-tuning/cleanup-mtab"
echo '#!/bin/sh' > "${DESTDIR}/${CINIT_DIR}/local-tuning/cleanup-mtab/$C_ON"
echo 'rm -f /etc/mtab' >>"${DESTDIR}/${CINIT_DIR}/local-tuning/cleanup-mtab/$C_ON"
echo 'ln -s /proc/mounts /etc/mtab' \
>> "${DESTDIR}/${CINIT_DIR}/local-tuning/cleanup-mtab/$C_ON"
chmod 0700 "${DESTDIR}/${CINIT_DIR}/local-tuning/cleanup-mtab/$C_ON"
exit 0

View file

@ -0,0 +1,24 @@
#!/bin/sh
# Nico Schottelius
# cinit: switch respawning off
# 2005-05-24
set -e
# init variables
. $(dirname $0)/cinit-conf.read-conf
if [ $# -lt 1 ]; then
echo "`basename $0`: service-name(s)"
echo " The respawning mark will be removed from services"
exit 1
fi
BASEDIR="$DESTDIR/$CINIT_DIR"
for svc in $@; do
echo -n "Removing respawning mark from $svc ..."
rm -f "${BASEDIR}/${svc}/${C_RESPAWN}"
echo "finished."
done

View file

@ -0,0 +1,24 @@
#!/bin/sh
# Nico Schottelius
# cinit: switch respawning on
# 2005-05-24
set -e
# init variables
. $(dirname $0)/cinit-conf.read-conf
if [ $# -lt 1 ]; then
echo "`basename $0`: service-name(s)"
echo " Services will be marked respawning"
exit 1
fi
BASEDIR="$DESTDIR/$CINIT_DIR"
for svc in $@; do
echo -n "Marking $svc respawning ..."
touch "${BASEDIR}/${svc}/${C_RESPAWN}"
echo "finished."
done

View file

@ -0,0 +1,64 @@
#!/bin/sh
# Nico Schottelius
# cinit: install udev
# Date: 2005-10-15
# Comment: DO NOT RSYNC TO THE WRONG SIDE!
#
. $(dirname $0)/cinit-conf.read-conf
set -e
if [ $# -ne 0 ]; then
echo "$(basename $0) (no args)"
exit 1
fi
BIN_UDEVSEND=$($(dirname $0)/cinit.path-find udevsend)
BIN_UDEVSTART=$($(dirname $0)/cinit.path-find udevstart)
BIN_SYSCTL=$($(dirname $0)/cinit.path-find sysctl)
BIN_MOUNT=$($(dirname $0)/cinit.path-find mount)
SERVICE="local-tuning/udev"
if [ -z "$BIN_UDEVSEND" -o -z "$BIN_UDEVSTART" -o -z "$BIN_SYSCTL" -o -z "$BIN_MOUNT" ]; then
echo "Did not find a binary."
exit 1
fi
if [ -d "${DESTDIR}/${CINIT_DIR}/${SERVICE}" ]; then
echo "Service ${SERVICE} already exists."
exit 1
fi
echo "Installing ${SERVICE} to ${DESTDIR}/${CINIT_DIR}/ ..."
# 0. general udev
"$INSTALL_PROG" "$INSTALL_DIRECTORY" \
"${DESTDIR}${CINIT_DIR}/${SERVICE}"
# 1. udevmount
"$INSTALL_PROG" "$INSTALL_DIRECTORY" \
"${DESTDIR}${CINIT_DIR}/mount/udev"
ln -sf "$BIN_MOUNT" "${DESTDIR}${CINIT_DIR}/mount/udev/$C_ON"
echo "udev" > "${DESTDIR}${CINIT_DIR}/mount/udev/$C_ON$C_PARAMS"
echo "-t" >> "${DESTDIR}${CINIT_DIR}/mount/udev/$C_ON$C_PARAMS"
echo "tmpfs" >> "${DESTDIR}${CINIT_DIR}/mount/udev/$C_ON$C_PARAMS"
echo "/dev" >> "${DESTDIR}${CINIT_DIR}/mount/udev/$C_ON$C_PARAMS"
# 2. udevstart
"$INSTALL_PROG" "$INSTALL_DIRECTORY" \
"${DESTDIR}${CINIT_DIR}/${SERVICE}/udevstart"
ln -sf "$BIN_UDEVSTART" "${DESTDIR}${CINIT_DIR}/${SERVICE}/udevstart/$C_ON"
# dependencies
$(dirname $0)/cinit-conf.add.dependency ${SERVICE}/udevstart needs mount/sys
$(dirname $0)/cinit-conf.add.dependency ${SERVICE}/udevstart needs mount/udev
# 3. udev to hotplug
"$INSTALL_PROG" "$INSTALL_DIRECTORY" \
"${DESTDIR}/${CINIT_DIR}/${SERVICE}/hotplug"
ln -sf "$BIN_SYSCTL" "${DESTDIR}/${CINIT_DIR}/${SERVICE}/hotplug/$C_ON"
echo "$BIN_UDEVSEND" > "${DESTDIR}${CINIT_DIR}/${SERVICE}/hotplug/$C_ON$C_PARAMS"
$(dirname $0)/cinit-conf.add.dependency ${SERVICE}/hotplug needs mount/proc
exit 0

View file

@ -0,0 +1,21 @@
#!/bin/sh
#
# 2008 Nico Schottelius (nico-cinit-conf at schottelius.org)
#
# This file is part of cinit-conf.
#
# cinit-conf is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cinit-conf is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cinit-conf. If not, see <http://www.gnu.org/licenses/>.
#
runlevel | cut -d " " -f2

View file

@ -0,0 +1,26 @@
#!/bin/sh
#
# 2008 Nico Schottelius (nico-cinit-conf at schottelius.org)
#
# This file is part of cinit-conf.
#
# cinit-conf is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# cinit-conf is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with cinit-conf. If not, see <http://www.gnu.org/licenses/>.
#
# read root
# read swap
# FIXME: read others: later
echo "Warning: Only configuring / and swap, ignoring other devices for now"

View file

@ -0,0 +1,18 @@
#!/bin/sh
# Nico Schottelius
# reboot system
# 2005-06-09
usage()
{
echo "`basename $0`"
echo " Reboot the system:"
exit 1
}
if [ $# -ne 0 ]; then
usage
fi
kill -HUP 1

View file

@ -0,0 +1,30 @@
#!/bin/sh
# Nico Schottelius
# shutdown system
# TODO: use ccontrol!
# 2005-05-24 (Last changed: 2005-06-18)
usage()
{
echo "`basename $0` -[ohr]"
echo " Shutdown the system:"
echo " -p|--power-off: Power off"
echo " -h|--halt: Halt"
echo " -r|--reboot: Reboot"
echo " -s|--rescue: Rescue mode"
echo " "
exit 1
}
if [ $# -ne 1 ]; then
usage
fi
case $1 in
-r|--reboot) kill -HUP 1 ;;
-p|--power-off) kill -TERM 1 ;;
-h|--halt) kill -USR1 1 ;;
-s|--rescue) kill -USR2 1 ;;
*) usage ;;
esac

View file

@ -0,0 +1,15 @@
#!/bin/sh
# Nico Schottelius
# cinit: install service: init
# Date: 2005-08-07
#
. $(dirname $0)/cinit-conf.read-conf
set -e
ln -sf /bin/echo "${DESTDIR}/${CINIT_DIR}/${C_INIT}/$C_ON"
echo '*** cinit initial service successfully started ***' \
> "${DESTDIR}/${CINIT_DIR}/${C_INIT}/${C_ON}${C_PARAMS}"
exit 0

View file

@ -0,0 +1,47 @@
#!/bin/sh
# Nico Schottelius
# cinit: install ntpdate
# Date: 2005-10-15
#
. $(dirname $0)/cinit-conf.read-conf
set -e
if [ $# -ne 0 ]; then
echo "$(basename $0) (no args)"
exit 1
fi
. /etc/default/ntpdate
if [ -z "$NTPSERVERS" ]; then
echo "No ntp servers found, aborting"
exit 1
fi
BINARY_PATH=$($(dirname $0)/cinit.path-find ntpdate)
if [ $? -ne 0 ]; then
echo "Did not find binary ntpdate."
exit 1
fi
if [ -d "${DESTDIR}/${CINIT_DIR}/local-tuning/ntpdate" ]; then
echo "Service ntpdate already exists."
exit 1
fi
echo -n "Installing ntpdate to ${DESTDIR}/${CINIT_DIR}/local-tuning/ntpdate ..."
"$INSTALL_PROG" "$INSTALL_DIRECTORY" \
"${DESTDIR}/${CINIT_DIR}/local-tuning/ntpdate"
ln -sf "$BINARY_PATH" "${DESTDIR}/${CINIT_DIR}/local-tuning/ntpdate/$C_ON"
for server in $NTPSERVERS; do
echo "$server" >> "${DESTDIR}/${CINIT_DIR}/local-tuning/ntpdate/$C_ON$C_PARAMS"
done
echo "finished."
exit 0

View file

@ -0,0 +1,31 @@
#!/bin/sh
# Nico Schottelius
# wait for daemon to terminate
# the pidfile is our first argument,
# the dameon the second and all others are for the daemon
# 2005-06-12 (Last Changed: 2005-06-17)
# how long to sleep before rechecking
SLEEP=5
if [ $# -lt 2 ]; then
echo "`basename $0` <pidfile> <daemon> [daemon arguments]"
exit 1
fi
PIDFILE=$1; shift
DAEMON=$1; shift
# remove old pidfile
[ -e "$PIDFILE" ] && rm -f $PIDFILE
$DAEMON $@
PID=$(cat "$PIDFILE")
ISALIVE=$(ps ax | awk '{ print $1 }' | grep "^$PID\$")
while [ "$ISALIVE" ]; do
sleep ${SLEEP}
ISALIVE=$(ps ax | awk '{ print $1 }' | grep "^$PID\$")
done

View file

@ -0,0 +1 @@
This directory is maintained by ditz.

View file

@ -0,0 +1,25 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: Create minimal sample configurations for different OS
desc: |-
Similar to what I thought todo in cinit.install.test:
[ -e /etc/gentoo-release ] && TAR=${TARDIR}/gentoo.tar
[ -e /etc/debian_version ] && TAR=${TARDIR}/debian.tar
[ -e /etc/SuSE-release ] && TAR=${TARDIR}/suse.tar
[ -e /etc/mandrake-release ] && TAR=${TARDIR}/mandrake.tar
[ -e /etc/fedora-release ] && TAR=${TARDIR}/fedora.tar
type: :task
component: portability
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-09-24 20:14:42.832701 Z
references: []
id: 0c63a541a2261c7322d6c59a6adb091301020c8d
log_events:
- - 2009-09-24 20:14:44.120614 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""

View file

@ -0,0 +1,22 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: How to handle OS specific signal handlers
desc: |-
-- cinit ignores the Keyboard request
- Currently there is no support to react on 'ctr+alt+del':
Maybe allow signal handlers to be passed to something like services?
type: :task
component: core
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-09-28 05:29:28.589652 Z
references: []
id: 0d8142c646aa04e8e713fc8f886a44475581c670
log_events:
- - 2009-09-28 05:29:31.033914 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""

View file

@ -0,0 +1,30 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: Add install targets
desc: |-
install:
make install => does not overwrite critical targets
* cinit
* *.kill (see client/*)
* cmd
make force-install => overwrites /sbin/{halt,poweroff,reboot}?
=> with script that wraps cmd
make install-template:
* creates categories
make install-miniconf:
* creates categories
* creates one service starting a shell (depending on the OS!)
type: :task
component: build
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-09-28 05:42:21.470333 Z
references: []
id: 120cbf62dbdd9a7a026bcbb7d2863599c7183f70
log_events:
- - 2009-09-28 05:42:22.146097 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""

View file

@ -0,0 +1,18 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: Documentate, how to write an init system
desc: So others can redo it.
type: :task
component: documentation
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-09-29 05:17:05.878201 Z
references: []
id: 1cc421b885608485f73c9041c5c0af71df76331a
log_events:
- - 2009-09-29 05:17:06.729534 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""

View file

@ -0,0 +1,18 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: add error handling to cinit.install.binary
desc: Double check the whole installation process
type: :task
component: build
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-09-28 05:32:13.897529 Z
references: []
id: 1e83dca921062d97b96830caf24e7898ad4fbbe2
log_events:
- - 2009-09-28 05:32:14.581391 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""

View file

@ -0,0 +1,23 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: "Documentate: How to cross compile"
desc: |-
conf/os to destination os
conf/cc
conf/ld
conf/cflags
conf/ldflags
type: :task
component: documentation
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-09-07 06:31:53.866741 Z
references: []
id: 25822475f5d01c35eb9edd8d75c065c83032701b
log_events:
- - 2009-09-07 06:31:54.990478 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""

View file

@ -0,0 +1,43 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: Add reason, why service was not started
desc: |-
--------------------------------------------------------------------------------
csvc:
11:09 < folken23> telmich: oder service allready started.
--------------------------------------------------------------------------------
cinit:
11:09 < folken23> telmich: zsb. eine grund angabe warum ein dienst nicht gestartet
werden konnte.
11:09 < folken23> telmich: e.g. file nicht gefunden, service hat nicht 0
zurueckgeworfen.
---> errno in execute_sth!
type: :task
component: cinit
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-09-28 05:36:51.093468 Z
references: []
id: 278e5a7b4c338f18f92d5bb1a2789d76d0e11ad9
log_events:
- - 2009-09-28 05:36:51.957356 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""
- - 2009-09-29 05:15:14.622132 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- commented
- |-
And add better status messages:
-> starting
[ started once ]
[ respawning ]
[ failed ] (+ REASON!)
[ needs failed ] (which ones)
-> stopping
[ stopping ] (for dependencies)
[ stopped ] ?
[ not running ] ?

View file

@ -0,0 +1,22 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: "Bugfix: SIGCHLD not handled carefully"
desc: ""
type: :task
component: core
release: "0.3"
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :in_progress
disposition:
creation_time: 2009-09-29 05:34:17.833638 Z
references: []
id: 29d45f06044e5329dca7f351a17676e65d4e3b38
log_events:
- - 2009-09-29 05:34:18.397430 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""
- - 2009-09-29 05:35:28.338069 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- changed status from unstarted to in_progress
- ""

View file

@ -0,0 +1,23 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: write sys-v-init-shutdown-wrapper
desc: |-
So people can use their known tools:
* shutdown
* halt
* reboot
* poweroff
type: :task
component: user interface
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-09-28 18:35:44.468421 Z
references: []
id: 2a4a3675810b44b05ce51c021690fb3f21725e55
log_events:
- - 2009-09-28 18:35:45.292294 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""

View file

@ -0,0 +1,22 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: Write a small manual
desc: |-
How to
- install
- configure
- boot (different OS)
type: :task
component: documentation
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-09-28 18:37:34.300443 Z
references: []
id: 2fda514da472aa15fa57d2df06e8d5cc909016d0
log_events:
- - 2009-09-28 18:37:35.280232 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""

View file

@ -0,0 +1,18 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: Export service information
desc: Like pid, path, ...
type: :task
component: cinit
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-09-29 05:18:47.901610 Z
references: []
id: 3cc14c82109544e198e5cce002c0d94a66e6f4d7
log_events:
- - 2009-09-29 05:18:48.369488 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""

View file

@ -0,0 +1,26 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: Add service start/stop
desc: Hack cinit_svc_disable.c
type: :task
component: cinit
release: "0.3"
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :in_progress
disposition:
creation_time: 2009-09-29 05:31:38.533662 Z
references: []
id: 40bb0e1478cb8e1fd7ef577b0acf8f7b2f516d6d
log_events:
- - 2009-09-29 05:31:39.209477 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""
- - 2009-09-29 05:32:40.681588 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- commented
- "svc_stop vs. svc_disable: coded tired?"
- - 2009-09-29 05:33:27.666143 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- changed status from unstarted to in_progress
- on it...

View file

@ -0,0 +1,18 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: Maybe create libcinit?
desc: At least for use in cmd()
type: :task
component: cinit
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-09-28 05:43:27.689712 Z
references: []
id: 4e460e6061fb5d39549b85d42fc33f57de7a1396
log_events:
- - 2009-09-28 05:43:28.069533 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""

View file

@ -0,0 +1,18 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: Documentate how to migrate from another init system
desc: ""
type: :task
component: documentation
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-09-28 20:00:00.854675 Z
references: []
id: 5bd7befd45553864b1d2ebc12509e06440a402d0
log_events:
- - 2009-09-28 20:00:01.450291 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""

View file

@ -0,0 +1,18 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: add code do implement stopping / restarting service with/without dependency tree
desc: ""
type: :task
component: cinit
release: 0.3.1
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-09-28 05:33:24.966097 Z
references: []
id: 5c4769f4f4f23b8a544ae3e20866d8fc2676a7e7
log_events:
- - 2009-09-28 05:33:25.929966 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""

View file

@ -0,0 +1,18 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: Mase sure cinit runs on POSIX
desc: Double check that there are no linux deps in it anymore (from cinit-0.2)
type: :task
component: portability
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-09-29 05:16:19.961614 Z
references: []
id: 8391cdbcb30d007bfb692504d9469a93f7c15b97
log_events:
- - 2009-09-29 05:16:20.858087 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""

View file

@ -0,0 +1,25 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: write examples for profiles
desc: |-
o switch ssh known_hosts based on profile
o different proxy settings in browsers
- environment
- mozilla settings
o start samba (for lan)
o start samba (for company lan)
o use nis and nfs (company profile)
type: :task
component: documentation
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-09-29 05:19:26.941625 Z
references: []
id: 85687a7f79046db51429db38e7b1da5234a3675e
log_events:
- - 2009-09-29 05:19:27.345506 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""

View file

@ -0,0 +1,24 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: Add speedup part in documentation
desc: |-
- cinit will start a little bit faster if you omit non needed
'wants' and 'needs' dirs as they need to be scanned if they
do not exist
- Dependencies beginning with a '.' (dot) are ignored.
So you can temporarily disable a dependency moving it to
want/.name
type: :task
component: documentation
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-09-28 05:30:01.562097 Z
references: []
id: 863a9d56ed460fb45e91d2c555d57133d2286f72
log_events:
- - 2009-09-28 05:30:02.433805 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""

View file

@ -0,0 +1,28 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: Create cinit-conf framework or libexec
desc: |-
Maybe include
- cinit_service_modify(name|path)
- cinit_service_create() - interactive
- cinit_service_delete(name|path) - interactive
* has to take care about needs / wants!
- cinit_magic_configuration_generation()
* tries to build a completly fresh configuration, by analysing your system
Non interactive tools
- cinit_svc_del
type: :task
component: user interface
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-09-29 05:28:48.049604 Z
references: []
id: 8d5e1aee59a52ab1b3b0b02b02f07823d4f4b8d8
log_events:
- - 2009-09-29 05:28:48.665510 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""

View file

@ -0,0 +1,18 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: export profile information
desc: Possible via $CINIT_PROFILE
type: :task
component: cinit
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-09-29 05:19:54.965525 Z
references: []
id: bb27c9b51f82dd54eba8baa40aa5e8bba326ea01
log_events:
- - 2009-09-29 05:19:55.929526 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""

View file

@ -0,0 +1,20 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: Cleanup environment before starting child
desc: |-
Close fds, free mem, ...
Chcek what's necessary, what's senseful, ...
type: :task
component: cinit
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-09-28 05:41:22.857702 Z
references: []
id: c8d020845511594b4b90bb38a2a839ef6ce4c9c8
log_events:
- - 2009-09-28 05:41:23.909476 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""

View file

@ -0,0 +1,20 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: write cinit-conf.check
desc: |-
* report broken links in needs/wants
* report circular dependencies
type: :task
component: user interface
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-09-28 18:36:27.892997 Z
references: []
id: d3732fffad054c5a1f781f28a60015346ad28dd6
log_events:
- - 2009-09-28 18:36:28.504859 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""

View file

@ -0,0 +1,18 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: Cleanup contrib+tools
desc: Tools may be old or not even compiling. Cleanup!
type: :task
component: cinit
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-09-29 05:22:54.298139 Z
references: []
id: d7a7970bd20e1dc0b04f314fee5f39ba90d3d904
log_events:
- - 2009-09-29 05:22:55.166003 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""

View file

@ -0,0 +1,22 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: Documentate sleeping behaviour (when respawing processes)
desc: |-
- cinit will sleep after respawing if ...
a) the service did not terminate normally (!WIFEXITED(status))
b) the service did return a non-zero exit status
type: :task
component: documentation
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-09-28 05:27:32.721481 Z
references: []
id: dbc5e27c03e3dd22add144409f6dfe8b81d2c8d1
log_events:
- - 2009-09-28 05:27:33.821345 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""

View file

@ -0,0 +1,20 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: define service status in one document, so repeatition stops
desc: |-
maybe use doxygen?
Chose focus: user | developer
type: :task
component: documentation
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-09-28 05:31:11.886061 Z
references: []
id: e40b9f0761d0a1e0ca47cc8e0e52d4ec16f51669
log_events:
- - 2009-09-28 05:31:12.802016 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""

View file

@ -0,0 +1,18 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: "FAQ: what happens when a service does not terminate...."
desc: write faq!
type: :task
component: documentation
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-09-28 20:11:41.130314 Z
references: []
id: e435cb93810ea790f795fedc2e9afc6475c9c0a8
log_events:
- - 2009-09-28 20:11:41.862145 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""

View file

@ -0,0 +1,51 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: Test new build sytem
desc: |-
Migrate conf/ to general conf/-buildsystem (write documentation for it).
gpm2 may be an example for this!
conf/targets:
targets to make available in Makefile and their dependencies
abstract the build-process somehow, so one can create build-targets?
c-programs/ (includes cc / ld)
cinit (link to conf/object_listings cinit?)
conf/object_listings
lists of dependencies:
conf/object_listings/cinit contains all objects needed for cinit
conf/programs/
like cc, ld, install, ...
conf/built-options/
like --... in ./configure
conf/install/
<name>
options/
destdir (prefixed before everything)
prefix (standard prefix)
bin (relative to prefix, if not beginning with a /)
sbin (relative to prefix, if not beginning with a /)
lib (relative to prefix, if not beginning with a /)
targets/
cinit/
built-target (link to conf/targets/cinit)
destination (relative to
type: :task
component: build
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-09-29 05:21:55.313650 Z
references: []
id: f10682d63b1059f876c6cdde2323a596dba89d3c
log_events:
- - 2009-09-29 05:21:55.845402 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""

View file

@ -0,0 +1,18 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: Check shutdown code
desc: To verify the right way
type: :task
component: core
release: "0.3"
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-09-29 05:34:46.305951 Z
references: []
id: fa88d3f9dca2df7ccaf8fb9ce2daab3e9255dae3
log_events:
- - 2009-09-29 05:34:46.774065 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""

View file

@ -0,0 +1,18 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: add logging support for services
desc: Similar to DJB tools? multilog?
type: :task
component: cinit
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-09-29 05:18:00.717667 Z
references: []
id: fea40277e32b0bd747d7f47a68d41009fc046fd9
log_events:
- - 2009-09-29 05:18:01.146029 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""

View file

@ -0,0 +1,44 @@
--- !ditz.rubyforge.org,2008-03-06/project
name: cinit
version: "0.5"
components:
- !ditz.rubyforge.org,2008-03-06/component
name: cinit
- !ditz.rubyforge.org,2008-03-06/component
name: core
- !ditz.rubyforge.org,2008-03-06/component
name: user interface
- !ditz.rubyforge.org,2008-03-06/component
name: portability
- !ditz.rubyforge.org,2008-03-06/component
name: documentation
- !ditz.rubyforge.org,2008-03-06/component
name: build
releases:
- !ditz.rubyforge.org,2008-03-06/release
name: "0.3"
status: :unreleased
release_time:
log_events:
- - 2009-09-07 06:28:02.974644 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- The first cleaned up version
- !ditz.rubyforge.org,2008-03-06/release
name: future
status: :unreleased
release_time:
log_events:
- - 2009-09-07 06:29:14.264777 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- All things to be fixed in the future.
- !ditz.rubyforge.org,2008-03-06/release
name: 0.3.1
status: :unreleased
release_time:
log_events:
- - 2009-09-28 05:32:55.870041 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- Bugfix of 0.3

View file

@ -0,0 +1,7 @@
This is an example for a cinit and cinit-conf configuration.
The first line of a file contains the configuration value,
the rest of the file may contain a description.
The conf/ directory is shared by cinit and cinit-conf and may contain files that
are only relevant for one of the two projects.

View file

@ -0,0 +1,3 @@
conf
The directory below cinit_dir for cinit configuration.

View file

@ -0,0 +1,4 @@
delay
Name of the file which contains the delay between sending SIGKILL after
SIGTERM for respawning processes.

View file

@ -0,0 +1,5 @@
/bin/sh
The path to a program, that we execute if nothing
else helps. We'll execute it, if the standard panic
action fails (as specified in cinit_dir/c_confdir/panic).

View file

@ -0,0 +1,9 @@
.env
The extension to c_on and c_off, which will contain the environment \n seperated.
For instance:
CLIENT_IP=192.168.23.42
ACCEPT_CONN=32

View file

@ -0,0 +1,3 @@
init
The name of the init service.

View file

@ -0,0 +1,7 @@
last
Name of the file below cinit_dir/c_confdir/ to execute right before
reboot/halt/poweroff.
This maybe a shellscript with the OS-specific umount procedure (like umount -a),
see doc/user/configuring.cinit for more details.

View file

@ -0,0 +1,3 @@
needs
Name of the service sub-directory containing the needed services.

View file

@ -0,0 +1,3 @@
off
Name of the file we start, when stopping the service.

View file

@ -0,0 +1,3 @@
on
Name of the file we start, when starting the service.

View file

@ -0,0 +1,5 @@
panic
Name of the file below cinit_dir/c_confdir/ to execute on panic.
This name .params (normally panic.params) will be passed as parameters/
argumunts to panic.

View file

@ -0,0 +1,3 @@
.params
The extension to c_on and c_off, which will contain the parameters \n seperated.

View file

@ -0,0 +1,3 @@
respawn
If this file exists in a service directory, cinit will respawn the service.

View file

@ -0,0 +1,4 @@
coala
The name of the socket cinit will use (currently: below tmpdir,
see doc/ipc.thoughts).

View file

@ -0,0 +1,3 @@
tmp
The name of the temporary directory, where we'll mount tmpfs to create the socket

View file

@ -0,0 +1,4 @@
tmpfs
The name of the filesystem to use to mount a memory filesystem.
On Linux this is "tmpfs".

View file

@ -0,0 +1,4 @@
tmpfs
The name of the mount target, we'll mount with c_tmpfs on the c_tmp directory.
On Linux this can be anything, but we will use the default "tmpfs".

View file

@ -0,0 +1,3 @@
wants
Name of the service sub-directory containing the wanted services.

View file

@ -0,0 +1,3 @@
gcc
The c-compiler to use.

View file

@ -0,0 +1,6 @@
-pipe -W -Wall -Werror -Iinclude -g -D_XOPEN_SOURCE=600 -D_USE_POSIX
Standard flags to pass to (g)cc.
-D_XOPEN_SOURCE=600 must be used on glibc to select the right standard.
-D_USE_POSIX is needed for sigemptyset on glibc

View file

@ -0,0 +1,3 @@
/etc/cinit
This is where all configuration for cinit will be stored.

View file

@ -0,0 +1,3 @@
conf
General cinit-configuration (below cinitdir)

View file

@ -0,0 +1,6 @@
The destination to install to. This is not used when running cinit,
but only for installing it. Normally the first line is blank.
cinit-conf uses this file for installing the configuration.

View file

@ -0,0 +1,4 @@
getty
This is the subdirectry in which the scripts will create the gettys,
if you are using 'install-conf'. It's not used be cinit internally.

View file

@ -0,0 +1,3 @@
-d
Parameter to pass to install_prog to create directories.

View file

@ -0,0 +1,4 @@
/usr/bin/install
Program we use to install. install_directory contains parameter
to create directory.

View file

@ -0,0 +1,5 @@
msgq
The type of IPC (inter process communication) to use.
Valid values can be optained by issuing `ls src/ipc/`.

View file

@ -0,0 +1,3 @@
gcc
Comment missing.

View file

@ -0,0 +1,3 @@
No flags specified normally.

View file

@ -0,0 +1,4 @@
30
Maximum number of seconds to sleep between retrying to start it
(respawn only).

View file

@ -0,0 +1,4 @@
32
Maximum number of direct dependencies (in each wants and needs,
that way doubling this number) a service may have. The default is 32.

View file

@ -0,0 +1,4 @@
/bin/sh
Used to generate an unique identifier for the message queue.
See ftok(3).

Some files were not shown because too many files have changed in this diff Show more