released cinit-0.3pre17

Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
This commit is contained in:
Nico Schottelius 2009-10-05 19:14:52 +02:00
parent 1ae2742a9b
commit 759b58c293
1108 changed files with 102415 additions and 0 deletions

View file

@ -0,0 +1,9 @@
[[!meta title="Cinit 0.3pre17 released"]]
There it is, the next release of [[cinit|software/cinit]],
***0.3pre16***. It contains a lot of useful utilities in the
[bin/ folder](../../software/cinit/browse_source/cinit-0.3pre17/bin/)
to begin a migration from [Ubuntus](http://www.ubuntu.com/)
[upstart](http://upstart.ubuntu.com/).
[[!tag unix]]

View file

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

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,145 @@
#
# 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
### User Mode Linux / DIRECTORY
UML_DIR_OS_DEBIAN=lenny
UML_ROOT_DIR=~/cinit/vm/uml/$(UML_DIR_OS_DEBIAN)
UML_ROOT_DIR_ABS=$(shell cd $(UML_ROOT_DIR) && pwd -P)
CONFDIR=etc/cinit/
uml-install-debian:
mkdir -p $(UML_ROOT_DIR)
sudo /usr/sbin/debootstrap $(UML_DIR_OS_DEBIAN) $(UML_ROOT_DIR)
me=$$(whoami); sudo chown -R $$me $(UML_ROOT_DIR)
# only install binaries, no need to test documentation
uml-install-config:
rsync -av --delete ./$(CONFDIR) $(UML_ROOT_DIR)/$(CONFDIR)
uml-install-cinit:
dir=$$(cd $(UML_ROOT_DIR); pwd -P); make -C src DESTDIR=$$dir install
uml-dir-start-cinit: uml-install-config
dir=$$(cd $(UML_ROOT_DIR); pwd -P); linux root=/dev/root rootflags=$$dir rootfstype=hostfs init=/sbin/cinit
uml-dir-start-plain:
./scripts/vm/uml-dir-start-plain.sh $(UML_ROOT_DIR_ABS)
### User Mode Linux / IMAGE
UML_IMG_FILE=~/cinit/vm/uml/Debian-3.0r0.ext2
uml-img-start-cinit:
./scripts/vm/uml-img-start-cinit.sh $(UML_IMG_FILE)
uml-img-start-plain:
./scripts/vm/uml-img-start-plain.sh $(UML_IMG_FILE)
# 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.107
UBUNTUCONF=./etc/cinit-ubuntu
UBUNTUINSTALL="cd cinit && make clean && sudo make install"
UBUNTUTEST="sudo reboot"
ubuntu-sync:
rsync -av --delete ./ $(UBUNTUHOST):cinit
ubuntu-install: ubuntu-sync
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,23 @@
#!/bin/sh
#
# 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/>.
#
#
# Migrate this ubuntu service
#

View file

@ -0,0 +1,91 @@
#!/bin/sh
#
# 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/>.
#
#
# Try to migrate upstarts config from ubuntu jaunty to cinit config
#
set -e
# /etc/event.d/rc-default guesses 2, so we also assume it's 2.
default_runlevel=2
################################################################################
#
# Base layout, same for every OS
#
cinit-conf.svc.init
cinit-conf.svc.categories
cinit-conf.svc.init.dependencies
################################################################################
# Sys-v-init on Linux and variants (=upstart) execute rcS before rc2.
#
# Upstart on jaunty is starts /etc/event.d/rc-default, which
# starts /etc/event.d/rcS which starts /etc/init.d/rcS which
# starts /etc/init.d/rc S which starts the shell scripts in
# /etc/rcS.d/ (does not sound very efficient to me).
# cinit@cinit-desktop:/etc/event.d$ ls -1 /etc/rcS.d/ | sed 's/^/# /'
# README: not migrated:
# S01mountkernfs.sh: sysfs, proc; ignored spufs, /var/run, /lib/init: migrated
cinit-conf.svc.mount.proc
cinit-conf.svc.mount.sys
# S01readahead: ignored
# S02hostname.sh: migrated
cinit-conf.svc.hostname.linux $(hostname)
# S06keyboard-setup: migrated
cinit-conf.svc.keymap.linux
# S07linux-restricted-modules-common: ignored
# S10udev: migrated
cinit-conf.svc.mount.udev
cinit-conf.svc.local-tuning.udev.ubuntu
# S11mountdevsubfs.sh: migrated!
cinit-conf.svc.mount.dev-shm
cinit-conf.svc.mount.dev-pts
# S13pcmciautils: ignored
# S15module-init-tools: not migrated: I think modules should be put into services
# S17procps: migrated
cinit-conf.svc.sysctl.linux
# S20checkroot.sh
# S22mtab.sh
# S25brltty
# S30checkfs.sh
# S35mountall.sh
# S36mountall-bootclean.sh
# S37apparmor
# S37mountoverflowtmp
# S37udev-finish
# S39readahead-desktop
# S39ufw
# S40networking
# S45mountnfs.sh
# S46mountnfs-bootclean.sh
# S49console-setup
# S55bootmisc.sh
# S55urandom
# S70screen-cleanup
# S70x11-common

View file

@ -0,0 +1,58 @@
#!/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}"}
# T_*: theorethic (not real, usable for linking)
: ${T_CINIT_DIR:="${CINIT_DIR}"}
: ${T_CINITCONF_DIR:="${T_CINIT_DIR}/${CINITCONFDIR}"}
: ${T_SVC_DIR:="${T_CINIT_DIR}/${SVCDIR}"}

View file

@ -0,0 +1,66 @@
#!/bin/sh
#
# 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/>.
#
#
# Create an almost empty service
#
set -e
# init variables
. "$(dirname $0)/cinit-conf.read-conf"
if [ $# -lt 1 ]; then
echo "`basename $0`: service-name(s)"
echo " I create templates for your services"
exit 1
fi
for svc in $@; do
INSTDIR="${R_SVC_DIR}/${svc}"
if [ -e "$INSTDIR" ]; then
echo "$svc already exists, skipping."
continue
fi
echo -n "Creating template $svc ..."
"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${INSTDIR}"
# needs
"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${INSTDIR}/${C_NEEDS}"
# wants
"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${INSTDIR}/${C_WANTS}"
# README
cat << eof > "${INSTDIR}/README"
This service was created by $0.
Please update this README to match the real content.
Add entries to ${C_NEEDS} for the services this services really needs
(it will not start if one failed to start).
Add services to ${C_WANTS} for the services this services wants
(it will start if one or more fail)."
eof
echo "done."
done

View file

@ -0,0 +1,46 @@
#!/bin/sh
#
# 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/>.
#
#
# Delete services
#
set -e
# init variables
. "$(dirname $0)/cinit-conf.read-conf"
if [ $# -lt 1 ]; then
echo "`basename $0`: service-name(s)"
echo " I delete your services"
exit 1
fi
for svc in "$@"; do
SERVICE="${R_SVC_DIR}/${svc}"
if [ ! -e "$SERVICE" ]; then
echo "${svc}: does not exists, cannot remove.."
continue
fi
echo -n "Removing $svc ..."
rm -rf "${SERVICE}"
echo "done."
done

View file

@ -0,0 +1,39 @@
#!/bin/sh
#
# 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/>.
#
#
# Select program to start on service start
#
set -e
# init variables
. "$(dirname $0)/cinit-conf.read-conf"
if [ $# -ne 2 ]; then
echo "$(basename $0): service path-to-executable"
exit 1
fi
svc="$1"; shift
executable="$1"; shift
echo "${svc}:${C_ON}->${executable}"
ln -sf "${executable}" "${R_SVC_DIR}/${svc}/${C_ON}"

View file

@ -0,0 +1,42 @@
#!/bin/sh
#
# 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/>.
#
#
# Select program to start on service start
#
set -e
# init variables
. "$(dirname $0)/cinit-conf.read-conf"
if [ $# -lt 3 ]; then
echo "$(basename $0): service (${C_ON}|${C_OFF}) params..."
exit 1
fi
svc="$1"; shift
type="$1"; shift
while [ $# -gt 0 ]; do
param="$1"; shift
file="${svc}/${type}${C_PARAMS}"
echo "${file}+=${param}"
echo "${param}" >> "${R_SVC_DIR}/${file}"
done

View file

@ -0,0 +1,26 @@
#!/bin/sh
#
# 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/>.
#
#
# Create default categories
#
. "$(dirname $0)/cinit-conf.read-conf"
cinit-conf.svc-create.template $SERVICE_CATEGORIES

View file

@ -0,0 +1,60 @@
#!/bin/sh
#
# 2008-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-conf. If not, see <http://www.gnu.org/licenses/>.
#
# cinit: create dependency: service a needs or wants service b
#
set -e
. "$(dirname $0)/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"; shift
DEP="$1"; shift
SVC_B="$1"; shift
# 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
# remove slashes in the name for destination
SVC_B_LNAME="$(echo $SVC_B | sed 's#/#-#g')"
SVC_B_SOURCE="${T_SVC_DIR}/${SVC_B}"
SVC_A_LDIR="${R_SVC_DIR}/${SVC_A}/${DEP}"
SVC_A_LDEST="${SVC_A_LDIR}/${SVC_B_LNAME}"
if [ ! -d "${SVC_A_LDIR}" ]; then
echo "${SVC_A}:+${DEP}"
mkdir "${SVC_A_LDIR}"
fi
echo "${SVC_A} ${DEP} ${SVC_B} (${SVC_B_LNAME})"
ln -sf "${SVC_B_SOURCE}" "${SVC_A_LDEST}"
exit 0

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,42 @@
#!/bin/sh
#
# 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/>.
#
#
# Setup the hostname
#
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}
SVC="network/hostname"
cinit-conf.svc-create.template "${SVC}"
ln -sf "$HOSTNAME_BIN" "${R_SVC_DIR}/${SVC}/${C_ON}"
echo "$HOSTNAME" > "${R_SVC_DIR}/${SVC}/${C_ON}${C_PARAMS}"
cinit-conf.svc.dependency.add "${SVC}" needs "mount/proc"

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,32 @@
#!/bin/sh
#
# 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/>.
#
#
# cinit: add standard sub-configuration directories to init wants
#
set -e
. "$(dirname $0)/cinit-conf.read-conf"
cinit-conf.svc.dependency.add init wants getty
cinit-conf.svc.dependency.add init wants local-services
cinit-conf.svc.dependency.add init wants local-tuning
cinit-conf.svc.dependency.add init wants mount
cinit-conf.svc.dependency.add init wants network

View file

@ -0,0 +1,41 @@
#!/bin/sh
#
# 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/>.
#
#
# Setup console keymap
#
. "$(dirname $0)/cinit-conf.read-conf"
set -e
if [ $# -ne 0 ]; then
echo "$(basename $0) (no args)"
exit 1
fi
SVC="local-tuning/keymap"
BINARY_PATH="$(which setupcon)"
cinit-conf.svc-create.template "${SVC}"
cinit-conf.svc-on "${SVC}" "${BINARY_PATH}"
cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-k"
# FIXME: what are the correct dependencies?
cinit-conf.svc.dependency.add "${SVC}" "needs" "mount/proc"

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,45 @@
#!/bin/sh
#
# 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/>.
#
#
# Configure the udev service
#
. "$(dirname $0)/cinit-conf.read-conf"
set -e
if [ $# -ne 0 ]; then
echo "$(basename $0) (no args)"
exit 1
fi
BINARY_PATH="$(which udevadm)"
SVC="local-tuning/udev"
cinit-conf.svc-create.template "${SVC}"
cinit-conf.svc-on "${SVC}" "${BINARY_PATH}"
cinit-conf.svc-param.add "${SVC}" "${C_ON}" "settle"
# dependencies
cinit-conf.svc.dependency.add "${SVC}" needs "mount/sys"
cinit-conf.svc.dependency.add "${SVC}" needs "mount/udev"
exit 0

View file

@ -0,0 +1,54 @@
#!/bin/sh
#
# 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/>.
#
#
# Mount /dev/shm, as specified in Ubuntu:
#
# domount tmpfs shmfs /dev/shm tmpfs -onosuid,nodev$SHM_OPT
#
#
. "$(dirname $0)/cinit-conf.read-conf"
set -e
if [ $# -ne 0 ]; then
echo "$(basename $0) (no args)"
exit 1
fi
SVC="mount/dev-pts"
BINARY_PATH="$(which mount)"
cinit-conf.svc-create.template "${SVC}"
cinit-conf.svc-on "${SVC}" "${BINARY_PATH}"
# Ubuntu: domount devpts "" /dev/pts devpts -onoexec,nosuid,gid=$TTYGRP,mode=$TTYMODE
# root@cinit-desktop:/home/cinit/cinit# grep -e TTYGRP -e TTYMODE /etc/default/*
# /etc/default/devpts:TTYGRP=5
# /etc/default/devpts:TTYMODE=620
# root@cinit-desktop:/home/cinit/cinit# awk -F: '$3 ~ /^5$/ { print $1 }' /etc/group
# tty
cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-n" "-t" "devpts" "devpts" "/dev/pts" "-onoexec,nosuid,gid=5,mode=620"
cinit-conf.svc.dependency.add "${SVC}" "needs" "mount/udev"
exit 0

View file

@ -0,0 +1,45 @@
#!/bin/sh
#
# 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/>.
#
#
# Mount /dev/shm, as specified in Ubuntu:
#
# domount tmpfs shmfs /dev/shm tmpfs -onosuid,nodev$SHM_OPT
#
#
. "$(dirname $0)/cinit-conf.read-conf"
set -e
if [ $# -ne 0 ]; then
echo "$(basename $0) (no args)"
exit 1
fi
SVC="mount/dev-shm"
BINARY_PATH="$(which mount)"
cinit-conf.svc-create.template "${SVC}"
cinit-conf.svc-on "${SVC}" "${BINARY_PATH}"
cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-n" "-t" "tmpfs" "-onosuid,nodev" "shmfs" "/dev/shm"
cinit-conf.svc.dependency.add "${SVC}" "needs" "mount/udev"
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,38 @@
#!/bin/sh
#
# 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/>.
#
#
# Mount /proc
#
. "$(dirname $0)/cinit-conf.read-conf"
set -e
# - mount /proc
SVC="mount/proc"
"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${R_SVC_DIR}/${SVC}"
ln -sf /bin/mount "${R_SVC_DIR}/${SVC}/${C_ON}"
echo proc > "${R_SVC_DIR}/${SVC}/${C_ON}${C_PARAMS}"
echo -t >> "${R_SVC_DIR}/${SVC}/${C_ON}${C_PARAMS}"
echo proc >> "${R_SVC_DIR}/${SVC}/${C_ON}${C_PARAMS}"
echo /proc >> "${R_SVC_DIR}/${SVC}/${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,39 @@
#!/bin/sh
#
# 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/>.
#
#
# Mount sysfs
#
. "$(dirname $0)/cinit-conf.read-conf"
set -e
DDIR="${R_SVC_DIR}/mount/sys/"
# - mount /sys
"$INSTALL_PROG" "$INSTALL_DIRECTORY" "${DDIR}"
ln -sf /bin/mount "${DDIR}${C_ON}"
echo sysfs > "${DDIR}${C_ON}${C_PARAMS}"
echo -t >> "${DDIR}${C_ON}${C_PARAMS}"
echo sysfs >> "${DDIR}${C_ON}${C_PARAMS}"
echo /sys >> "${DDIR}${C_ON}${C_PARAMS}"
exit 0

View file

@ -0,0 +1,40 @@
#!/bin/sh
#
# 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/>.
#
#
# Setup console keymap
#
. "$(dirname $0)/cinit-conf.read-conf"
set -e
if [ $# -ne 0 ]; then
echo "$(basename $0) (no args)"
exit 1
fi
SVC="mount/udev"
BINARY_PATH="$(which mount)"
cinit-conf.svc-create.template "${SVC}"
cinit-conf.svc-on "${SVC}" "${BINARY_PATH}"
cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-n" "-t" "tmpfs" "-o" "mode=0755" "udev" "/dev"
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,63 @@
#!/bin/sh
#
# 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/>.
#
#
# Load sysctl values
#
# Ubuntu: for file in /etc/sysctl.conf /etc/sysctl.d/*.conf
#
. "$(dirname $0)/cinit-conf.read-conf"
################################################################################
# standard vars stolen from cconf
__pwd="$(pwd -P)"
__mydir="${0%/*}"; __abs_mydir="$(cd "$__mydir" && pwd -P)"
__myname=${0##*/}; __abs_myname="$__abs_mydir/$__myname"
set -e
if [ $# -ne 0 ]; then
echo "$(basename $0) (no args)"
exit 1
fi
SVC="local-tuning/sysctl"
BINARY_PATH="$(which sysctl)"
# main service
cinit-conf.svc-delete "${SVC}"
cinit-conf.svc-create.template "${SVC}"
cinit-conf.svc-on "${SVC}" "${BINARY_PATH}"
cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-p" "/etc/sysctl.conf"
# create "sub"-services
for file in /etc/sysctl.d/*.conf; do
bsvc="${file##*/}"
bsvc="${bsvc%*.conf}"
svc="${SVC}/${bsvc}"
cinit-conf.svc-create.template "${svc}"
cinit-conf.svc-on "${SVC}" "${BINARY_PATH}"
cinit-conf.svc-param.add "${svc}" "${C_ON}" "-p" "${file}"
cinit-conf.svc.dependency.add "${SVC}" "needs" "${svc}"
done
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)

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