update to cinit-0.3pre19

Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
This commit is contained in:
Nico Schottelius 2009-11-30 07:27:49 +01:00
parent 367a74c75e
commit 7c47ae1c48
1119 changed files with 101885 additions and 0 deletions

View file

@ -0,0 +1,6 @@
[[!meta title="Cinit 0.3pre19 released"]]
Version ***0.3pre19*** of [[cinit-0.3|software/cinit]]
contains a lot cleanups for the final 0.3 release.
[[!tag unix]]

View file

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

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 @@
- git

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,143 @@
#
# 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=bin 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;
# Fix installation of conf/, check that bin/ is working and then
# release
install:
.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
################################################################################
# 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,241 @@
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.3pre19.tar.bz2|archives/cinit-0.3pre19.tar.bz2]]
([browse source](browse_source/cinit-0.3pre19/))
[[changes|browse_source/cinit-0.3pre19/doc/changes/0.3pre19]]
* [[cinit-0.3pre18.tar.bz2|archives/cinit-0.3pre18.tar.bz2]]
([browse source](browse_source/cinit-0.3pre18/))
[[changes|browse_source/cinit-0.3pre18/doc/changes/0.3pre18]]
* [[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]]
([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,37 @@
#
# 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.
#
#
# Static vars
#
SBIN=$(shell ls cinit-cmd* cinit-helper*)
BIN=$(shell ls cinit-conf*)
#
# Targets
#
all clean dist distclean:
install:
install ${SBIN} ${DESTDIR}/sbin
install ${BIN} ${DESTDIR}/bin

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,33 @@
#!/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 a minimal "usable" config
#
set -e
. "$(dirname $0)/cinit-conf.read-conf"
cinit-conf.svc.init
cinit-conf.svc.categories
cinit-conf.svc.mount.proc
cinit-conf.svc.mount.root
cinit-conf.svc.shell
cinit-conf.svc-boot-enable "local-services/shell"

View file

@ -0,0 +1,58 @@
#!/bin/sh
#
# 2005-2009 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/>.
#
#
# Dump configuration usable as a c-header file.
#
################################################################################
# standard vars stolen from cconf
set -e
__pwd="$(pwd -P)"
__mydir="${0%/*}"; __abs_mydir="$(cd "$__mydir" && pwd -P)"
__myname=${0##*/}; __abs_myname="$__abs_mydir/$__myname"
set +e
CONFS="$(cinit-conf.get-confdir)"
echo "/* Warning: Autogenerated by $0, do not edit. */"
for conf in "${CONFS}/"*; do
NAME="$(basename ${conf} | tr a-z A-Z)"
value=$(head -n 1 ${conf})
# check if numeric: no quotes needed
is_numeric=$(echo $value | awk '/^((0[xX])[0-9a-fA-F]+)|([0-9]+)$/ { print }')
is_string="$(echo $value | grep '^"')"
#
# Check for quote type
#
if [ ! "$is_numeric" -a ! "$is_string" ]; then
one_char=$(echo -n $value | wc -c)
if [ "$one_char" -eq 1 ]; then
value="'$value'"
else
# is a string
value="\"$value\""
fi
fi
echo "#define" "$NAME" "$value"
done

View file

@ -0,0 +1,49 @@
#!/bin/sh
#
# 2005-2009 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)
#
set -x
################################################################################
# standard vars stolen from cconf
__pwd="$(pwd -P)"
__mydir="${0%/*}"; __abs_mydir="$(cd "$__mydir" && pwd -P)"
__myname=${0##*/}; __abs_myname="$__abs_mydir/$__myname"
# try environment first
if [ "$CINIT_CONF_CONF_DIR" ]; then
CONFDIR="$CINIT_CONF_CONF_DIR"
elif [ -d "${__abs_mydir}/../conf/" ]; then
CONFDIR="${__abs_mydir}/../conf/"
elif [ -d "${HOME}/.cinit-conf/" ]; then
CONFDIR="${HOME}/.cinit-conf/"
elif [ -d "/etc/cinit/build-conf/" ]; then
CONFDIR="/etc/cinit/build-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,490 @@
#!/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 archlinux to cinit
#
set -e
################################################################################
#
# Base layout, same for every OS
#
cinit-conf.svc.init
cinit-conf.svc.categories
# Arch Linux has a minimal /etc/inittab, nice to migrate!
# Arch only starts /etc/rc.sysinit. Even nicer to migrate!
# These are covered already by our existing scripts
#/bin/mount -n -t tmpfs none /dev -o mode=0755
#/bin/mount -n -t proc none /proc
#/bin/mount -n -t sysfs none /sys
# Copy static device nodes to /dev
# /bin/cp -a /lib/udev/devices/* /dev/
cinit-conf.svc.udev.copy-static
# start up our mini logger until syslog takes over
/sbin/minilogd
# anything more serious than KERN_WARNING goes to the console
# 'verbose' cmdline parameter enables more messages
if /bin/grep -q " verbose" /proc/cmdline; then
/bin/dmesg -n 8
else
/bin/dmesg -n 3
fi
# enable rtc access
/sbin/modprobe rtc-cmos >/dev/null 2>&1
RTC_MAJOR=$(/bin/grep -w rtc /proc/devices 2>/dev/null)
RTC_MAJOR="${RTC_MAJOR%% *}"
if [ -n "$RTC_MAJOR" ]; then
/bin/mknod /dev/rtc0 c $RTC_MAJOR 0
/bin/ln -s /dev/rtc0 /dev/rtc
fi
HWCLOCK_PARAMS="--hctosys"
if [ "$HARDWARECLOCK" = "UTC" ]; then
HWCLOCK_PARAMS="$HWCLOCK_PARAMS --utc"
elif [ "$HARDWARECLOCK" = "localtime" ]; then
HWCLOCK_PARAMS="$HWCLOCK_PARAMS --localtime"
else
HWCLOCK_PARAMS=""
fi
# Set clock early to fix some bugs with filesystem checks
# Clock is set again later to match rc.conf
if [ -n "$HWCLOCK_PARAMS" -a -f /etc/localtime ]; then
/sbin/hwclock $HWCLOCK_PARAMS --noadjfile
fi
echo > /proc/sys/kernel/hotplug
if [ -x /sbin/udevadm ]; then
stat_busy "Starting UDev Daemon"
/sbin/udevd --daemon
stat_done
else
# Static /dev, our last resort
status "Using static /dev filesystem" true
fi
# Trigger udev uevents
if /bin/pidof -o %PPID /sbin/udevd >/dev/null; then
stat_busy "Triggering UDev uevents"
/sbin/udevadm trigger
stat_done
fi
# Load modules from the MODULES array defined in rc.conf
if ! [ "$load_modules" = "off" ]; then
if [ -f /proc/modules ]; then
stat_busy "Loading Modules"
for mod in "${MODULES[@]}"; do
if [ "$mod" = "${mod#!}" ]; then
/sbin/modprobe $mod
fi
done
stat_done
fi
if [ -d /proc/acpi ]; then
stat_busy "Loading standard ACPI modules"
ACPI_MODULES="ac battery button fan processor thermal"
k="$(echo $BLACKLIST ${MOD_BLACKLIST[@]} | /bin/sed 's|-|_|g')"
j="$(echo ${MODULES[@]} | /bin/sed 's|-|_|g')"
#add disabled MODULES (!) to blacklist - much requested feature
for m in ${j}; do
[ "$m" != "${m#!}" ] && k="${k} ${m#!}"
done
# add disablemodules= from commandline to blacklist
k="${k} $(echo ${disablemodules} | /bin/sed 's|-|_|g' | /bin/sed 's|,| |g')"
for n in ${ACPI_MODULES}; do
if ! echo ${k} | /bin/grep "\<$n\>" 2>&1 >/dev/null; then
/sbin/modprobe $n > /dev/null 2>&1
fi
done
stat_done
fi
fi
# Wait for udev uevents
if /bin/pidof -o %PPID /sbin/udevd >/dev/null; then
stat_busy "Waiting for UDev uevents to be processed"
udevstart="$(/bin/date +%s%0N)"
/sbin/udevadm settle
stat_done
udevend="$(/bin/date +%s%0N)"
printhl " UDev uevent processing time: $((($udevend-$udevstart)/1000000))ms"
fi
# bring up the loopback interface
if [ -d /sys/class/net/lo ]; then
stat_busy "Bringing up loopback interface"
/sbin/ifconfig lo 127.0.0.1 up
if [ $? -ne 0 ]; then
stat_fail
else
stat_done
fi
fi
# If necessary, find md devices and manually assemble RAID arrays
if [ -f /etc/mdadm.conf -a "$(/bin/grep ^ARRAY /etc/mdadm.conf 2>/dev/null)" ]; then
# udev won't create these md nodes, so we do it ourselves
for dev in $(/bin/grep ^ARRAY /etc/mdadm.conf | /bin/awk '{print $2}'); do
path=$(echo $dev | /bin/sed 's|/[^/]*$||')
node=$(echo $dev | /bin/sed "s|^$path/||")
minor=$(echo $node | /bin/sed 's|^[^0-9]*||')
[ ! -e $path/$node ] && /bin/mknod $path/$node b 9 $minor
done
status "Activating RAID arrays" /sbin/mdadm --assemble --scan
fi
if [ "$USELVM" = "yes" -o "$USELVM" = "YES" ]; then
if [ -x /sbin/lvm -a -d /sys/block ]; then
# Kernel 2.6.x, LVM2 groups
/sbin/modprobe -q dm-mod 2>/dev/null
stat_busy "Activating LVM2 groups"
/sbin/lvm vgscan --ignorelockingfailure --mknodes >/dev/null
/sbin/lvm vgchange --ignorelockingfailure -a y >/dev/null
if [ $? -ne 0 ]; then
stat_fail
else
stat_done
fi
fi
fi
# Set up non-root encrypted partition mappings
if [ -f /etc/crypttab -a -n "$(/bin/grep -v ^# /etc/crypttab | /bin/grep -v ^$)" ]; then
/sbin/modprobe -q dm-mod 2>/dev/null
stat_busy "Unlocking encrypted volumes:"
csfailed=0
CS=/sbin/cryptsetup.static
do_crypt() {
if [ $# -ge 3 ]; then
cname="$1"
csrc="$2"
cpass="$3"
shift 3
copts="$*"
stat_append "${cname}.."
# For some fun reason, the parameter ordering varies for
# LUKS and non-LUKS devices. Joy.
if [ "${cpass}" = "SWAP" ]; then
# This is DANGEROUS! The only possible safety check
# is to not proceed in case we find a LUKS device
# This may cause dataloss if it is not used carefully
if $CS isLuks $csrc 2>/dev/null; then
false
else
$CS -d /dev/urandom $copts create $cname $csrc >/dev/null
if [ $? -eq 0 ]; then
stat_append "creating swapspace.."
/sbin/mkswap -f -L $cname /dev/mapper/$cname >/dev/null
fi
fi
elif [ "${cpass}" = "ASK" ]; then
printf "\nOpening '${cname}' volume:\n"
if $CS isLuks $csrc 2>/dev/null; then
$CS $copts luksOpen $csrc $cname < /dev/console
else
$CS $copts create $cname $csrc < /dev/console
fi
elif [ "${cpass:0:1}" != "/" ]; then
if $CS isLuks $csrc 2>/dev/null; then
echo "$cpass" | $CS $copts luksOpen $csrc $cname >/dev/null
else
echo "$cpass" | $CS $copts create $cname $csrc >/dev/null
fi
else
if $CS isLuks $csrc 2>/dev/null; then
$CS -d $cpass $copts luksOpen $csrc $cname >/dev/null
else
$CS -d $cpass $copts create $cname $csrc >/dev/null
fi
fi
if [ $? -ne 0 ]; then
csfailed=1
stat_append "failed "
else
stat_append "ok "
fi
fi
}
while read line; do
eval do_crypt "$line"
done </etc/crypttab
if [ $csfailed -eq 0 ]; then
stat_done
else
stat_fail
fi
# Maybe someone has LVM on an encrypted block device
if [ "$USELVM" = "yes" -o "$USELVM" = "YES" ]; then
if [ -x /sbin/lvm -a -d /sys/block ]; then
/sbin/lvm vgscan --ignorelockingfailure --mknodes >/dev/null
/sbin/lvm vgchange --ignorelockingfailure -a y >/dev/null
fi
fi
fi
status "Mounting Root Read-only" /bin/mount -n -o remount,ro /
FORCEFSCK=
[ -f /forcefsck ] && FORCEFSCK="-- -f"
NETFS="nonfs,nonfs4,nosmbfs,nocifs,nocodafs,noncpfs,nosysfs,noshfs,nofuse,nofuseblk,noglusterfs"
fsck_reboot() {
echo "Automatic reboot in progress..."
/bin/umount -a
/bin/mount -n -o remount,ro /
/sbin/reboot -f
exit 0
}
if [ -x /sbin/fsck ]; then
stat_busy "Checking Filesystems"
FSCK_OUT=/dev/stdout
FSCK_ERR=/dev/null
/sbin/fsck -A -T -C -a -t $NETFS $FORCEFSCK >$FSCK_OUT 2>$FSCK_ERR
fsckret=$?
if [ ${fsckret} -gt 1 ]; then
stat_fail
fi
if [ $((${fsckret}&2)) -eq 2 ]; then
echo
echo "********************** REBOOT REQUIRED *********************"
echo "* *"
echo "* The system will be rebooted automatically in 15 seconds. *"
echo "* *"
echo "************************************************************"
echo
/bin/sleep 15
fsck_reboot
fi
if [ ${fsckret} -gt 1 -a ${fsckret} -ne 32 ]; then
echo
echo "***************** FILESYSTEM CHECK FAILED ****************"
echo "* *"
echo "* Please repair manually and reboot. Note that the root *"
echo "* file system is currently mounted read-only. To remount *"
echo "* it read-write type: mount -n -o remount,rw / *"
echo "* When you exit the maintenance shell the system will *"
echo "* reboot automatically. *"
echo "* *"
echo "************************************************************"
echo
/sbin/sulogin -p
fsck_reboot
fi
stat_done
fi
stat_busy "Mounting Local Filesystems"
/bin/mount -n -o remount,rw /
/bin/rm -f /etc/mtab*
# make sure / gets written to /etc/mtab
/bin/mount -o remount,rw /
# Write /proc, /sys and /dev to /etc/mtab
if [ -e /proc/mounts ]; then
/bin/grep -e "/proc " -e "/sys " -e "/dev " /proc/mounts >> /etc/mtab
fi
# now mount all the local filesystems
/bin/mount -a -t $NETFS -O no_netdev
stat_done
status "Activating Swap" /sbin/swapon -a
stat_busy "Configuring System Clock"
if [ ! -f /var/lib/hwclock/adjtime ]; then
echo "0.0 0 0.0" > /var/lib/hwclock/adjtime
fi
if [ "$TIMEZONE" != "" -a -e "/usr/share/zoneinfo/$TIMEZONE" ]; then
/bin/rm -f /etc/localtime
/bin/cp "/usr/share/zoneinfo/$TIMEZONE" /etc/localtime
fi
if [ -n "$HWCLOCK_PARAMS" ]; then
/sbin/hwclock --adjust #Adjust for system drift
/sbin/hwclock $HWCLOCK_PARAMS
fi
stat_done
RANDOM_SEED=/var/lib/misc/random-seed
if [ -f $RANDOM_SEED ]; then
stat_busy "Initializing Random Seed"
/bin/cat $RANDOM_SEED > /dev/urandom
stat_done
fi
stat_busy "Removing Leftover Files"
/bin/rm -f /etc/nologin &>/dev/null
/bin/rm -f /etc/shutdownpid &>/dev/null
/bin/rm -f /var/lock/* &>/dev/null
/bin/rm -rf /tmp/* /tmp/.* &>/dev/null
/bin/rm -f /forcefsck &>/dev/null
(cd /var/run && /usr/bin/find . ! -type d -exec /bin/rm -f -- {} \; )
: > /var/run/utmp
/bin/chmod 0664 /var/run/utmp
# Keep {x,k,g}dm happy with xorg
/bin/mkdir /tmp/.ICE-unix && /bin/chmod 1777 /tmp/.ICE-unix
/bin/mkdir /tmp/.X11-unix && /bin/chmod 1777 /tmp/.X11-unix
stat_done
#status "Updating Shared Library Links" /sbin/ldconfig
if [ "$HOSTNAME" != "" ]; then
status "Setting Hostname: $HOSTNAME" /bin/hostname $HOSTNAME
fi
# Set the NIS domain name, if necessary
[ -f /etc/conf.d/nisdomainname ] && . /etc/conf.d/nisdomainname
if [ "$NISDOMAINNAME" != "" ]; then
status "Setting NIS Domain Name: $NISDOMAINNAME" /bin/nisdomainname $NISDOMAINNAME
fi
status "Updating Module Dependencies" /sbin/depmod -A
# Flush old locale settings
: >/etc/profile.d/locale.sh
/bin/chmod 755 /etc/profile.d/locale.sh
# Set user defined locale
[ -z "$LOCALE" ] && LOCALE="en_US"
stat_busy "Setting Locale: $LOCALE"
echo "export LANG=$LOCALE" >>/etc/profile.d/locale.sh
stat_done
# Adding persistent network/cdrom generated rules
if [ -f "/dev/.udev/tmp-rules--70-persistent-cd.rules" ]; then
stat_busy "Adding persistent cdrom udev rules"
/bin/cat /dev/.udev/tmp-rules--70-persistent-cd.rules >> /etc/udev/rules.d/70-persistent-cd.rules
stat_done
fi
if [ -f "/dev/.udev/tmp-rules--70-persistent-net.rules" ]; then
stat_busy "Adding persistent network udev rules"
/bin/cat /dev/.udev/tmp-rules--70-persistent-net.rules >> /etc/udev/rules.d/70-persistent-net.rules
stat_done
fi
/bin/dmesg >| /var/log/dmesg.log
# End of file
# vim: set ts=2 noet:
# The part before here is migrated, the rest came from the template
exit 0
# /etc/event.d/rc-default guesses 2, so we also assume it's 2.
default_runlevel=2
################################################################################
# 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: migrated for /
cinit-conf.svc.mount.root
# S22mtab.sh: manually create mtab; migrated (though a little bit hacky)
cinit-conf.svc.mtab-clean.linux
# S25brltty: ignored: don't have a braille terminal here to test it
# S30checkfs.sh: ignored, not yet supported, have to find other mountpoints first
# S35mountall.sh: ignored: same as S30checkfs.sh
# S36mountall-bootclean.sh: migrated
# /var/run is not a tempdir, do not clean it
cinit-conf.svc.tmp.clean "/tmp" "/var/tmp" "/var/lock"
cinit-conf.svc.tmp.create "/tmp" "/var/tmp" "/var/lock"
# S37apparmor: ignored
# S37mountoverflowtmp: ignored, that's a boottime bugfix
# S37udev-finish: no need to migrate, if having correct dependencies.
# S39readahead-desktop: ignored, as it seems not to work here
# S39ufw: disabled here by default -> skip
# S40networking
cinit-conf.svc.network.debian
# S45mountnfs.sh: migrated, only much smaller
cinit-conf.svc.mount.nfs
# S46mountnfs-bootclean.sh: already done (cinit-conf.svc.tmp.*)
# S49console-setup: migrated
cinit-conf.svc.setup.console.linux
# S55bootmisc.sh
# S55urandom
# S70screen-cleanup
# S70x11-common
cat << eof
Ubuntu upstart migration completed.
WARNING:
This is a "lazy" migration: Ubuntu init scripts are migrated
similar, but not identical. Some services have been skipped, because
they are not necessary with cinit or in general.
Check /etc/cinit before rebooting with cinit!
KNOWN BUGS:
S20checkroot.sh: Only / is being fscked, other partitions are ignored.
HINT:
Make sure init=/sbin/cinit is set in your bootloader.
eof

View file

@ -0,0 +1,174 @@
#!/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: migrated for /
cinit-conf.svc.mount.root
# S22mtab.sh: manually create mtab; migrated (though a little bit hacky)
cinit-conf.svc.mtab-clean.linux
# S25brltty: ignored: don't have a braille terminal here to test it
# S30checkfs.sh: ignored, not yet supported, have to find other mountpoints first
# S35mountall.sh: ignored: same as S30checkfs.sh
# S36mountall-bootclean.sh: migrated
# /var/run is not a tempdir, do not clean it
cinit-conf.svc.tmp.clean "/tmp" "/var/tmp" "/var/lock"
cinit-conf.svc.tmp.create "/tmp" "/var/tmp" "/var/lock"
# S37apparmor: ignored
# S37mountoverflowtmp: ignored, that's a boottime bugfix
# S37udev-finish: no need to migrate, if having correct dependencies.
# S39readahead-desktop: ignored, as it seems not to work here
# S39ufw: disabled here by default -> skip
# S40networking
cinit-conf.svc.network.debian
# S45mountnfs.sh: migrated, only much smaller
cinit-conf.svc.mount.nfs
# S46mountnfs-bootclean.sh: already done (cinit-conf.svc.tmp.*)
# S49console-setup: migrated
cinit-conf.svc.setup.console.linux
# S55bootmisc.sh: skipped
# S55urandom: skipped, should be done later!
# S70screen-cleanup: skipped, unclean, should be done later!
# S70x11-common: also skipped, want to finish this script.
################################################################################
#
# /etc/rc2.d/ migration
#
# cinit@cinit-desktop:/etc/rc2.d$ ls -1
# README
# S01policykit: ignored
# S10acpid: migrated (without module loading)
cinit-conf.svc.acpid
# Skipping the following ones currently
# S10sysklogd
# S11klogd
# S12dbus
# S16ssh
cinit-conf.svc.sshd
# S20apport
# S20hotkey-setup
# S24hal
# S25bluetooth
# S30gdm
# S50NetworkManager
# S50avahi-daemon
# S50cups
# S50pulseaudio
# S50rsync
# S50saned
# S50system-tools-backends
# S70bootlogs.sh
# S70dns-clean
# S70pppd-dns
# S89anacron
# S89atd
# S89cron
# S90binfmt-support
# S98usplash
# S99acpi-support
# S99laptop-mode
# S99ondemand
# S99rc.local
# S99rmnologin
# S99stop-readahead
################################################################################
#
# Enable local login with six getties
#
cinit-conf.svc.agetty 6
cat << eof
Ubuntu upstart migration completed.
WARNING:
This is a "lazy" migration: Ubuntu init scripts are migrated
similar, but not identical. Some services have been skipped, because
they are not necessary with cinit or in general.
Check /etc/cinit before rebooting with cinit!
KNOWN BUGS:
S20checkroot.sh: Only / is being fscked, other partitions are ignored.
HINT:
Make sure init=/sbin/cinit is set in your bootloader.
eof

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:="$(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,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-conf. If not, see <http://www.gnu.org/licenses/>.
#
# Enable a service at boottime: add it to init wants list
#
set -e
################################################################################
# standard vars stolen from cconf
__pwd="$(pwd -P)"
__mydir="${0%/*}"; __abs_mydir="$(cd "$__mydir" && pwd -P)"
__myname=${0##*/}; __abs_myname="$__abs_mydir/$__myname"
. "${__abs_mydir}/cinit-conf.read-conf"
if [ $# -lt 1 ]; then
echo "${__myname}: services... "
echo ""
echo " I add the services to init, so they will be started at boot."
echo ""
exit 1
fi
SVC="init"
cinit-conf.svc.dependency.add "${SVC}" "wants" "$@"
exit 0

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,43 @@
#!/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 stop
#
################################################################################
# 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
. "${__abs_mydir}/cinit-conf.read-conf"
if [ $# -ne 2 ]; then
echo "${__myname}: service path-to-executable"
exit 1
fi
svc="$1"; shift
executable="$1"; shift
echo "${svc}:${C_OFF}->${executable}"
ln -sf "${executable}" "${R_SVC_DIR}/${svc}/${C_OFF}"

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,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/>.
#
#
# Disable respawing for a service
#
set -e
################################################################################
# standard vars stolen from cconf
__pwd="$(pwd -P)"
__mydir="${0%/*}"; __abs_mydir="$(cd "$__mydir" && pwd -P)"
__myname=${0##*/}; __abs_myname="$__abs_mydir/$__myname"
# init variables
. "${__mydir}/cinit-conf.read-conf"
if [ $# -lt 1 ]; then
echo "${__myname}: service-name(s)"
echo " Services will lose their respawn mark"
exit 1
fi
for svc in "$@"; do
echo -n "${svc}:respaw->off"
rm -f "${R_SVC_DIR}/${svc}/${C_RESPAWN}"
echo "finished."
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/>.
#
#
# Enable respawing for a service
#
set -e
################################################################################
# standard vars stolen from cconf
__pwd="$(pwd -P)"
__mydir="${0%/*}"; __abs_mydir="$(cd "$__mydir" && pwd -P)"
__myname=${0##*/}; __abs_myname="$__abs_mydir/$__myname"
# init variables
. "${__mydir}/cinit-conf.read-conf"
if [ $# -lt 1 ]; then
echo "${__myname}: service-name(s)"
echo " Services will be marked respawning"
exit 1
fi
for svc in "$@"; do
echo -n "${svc}:respaw->on"
touch "${R_SVC_DIR}/${svc}/${C_RESPAWN}"
echo "finished."
done

View file

@ -0,0 +1,51 @@
#!/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/>.
#
#
# Start acpid
#
################################################################################
# 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
. "${__abs_mydir}/cinit-conf.read-conf"
if [ $# -ne 0 ]; then
echo "${__myname}: <no args>"
echo ""
echo " I start the old acpid"
echo ""
exit 23
fi
SVC="local-services/acpid"
BINARY_PATH="$(which acpid)"
NEEDS="mount/root mount/proc"
cinit-conf.svc-create.template "${SVC}"
cinit-conf.svc-on "${SVC}" "${BINARY_PATH}"
cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-f"
cinit-conf.svc.dependency.add "${SVC}" "needs" $NEEDS
exit 0

View file

@ -0,0 +1,71 @@
#!/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/>.
#
#
# Enable agetty (6 times is fine)
#
################################################################################
# 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
. "$(dirname $0)/cinit-conf.read-conf"
if [ $# -ne 1 ]; then
echo "${__myname}: <number of getties to start>"
echo ""
echo " Allow login to your system using agetty"
echo ""
exit 23
fi
num_getties="$1"; shift
SVCBASE="local-services/agetty"
# agetty is called getty within debian/ubuntu -> FIXME: also search for agetty
BINARY_PATH="$(which getty)"
NEEDS="mount/root mount/proc"
# Create container to hold all the getties
cinit-conf.svc-create.template "${SVCBASE}"
i=0
while [ "$i" -lt "$num_getties" ]; do
SVC="${SVCBASE}/$i"
tty="tty${i}"
speed="38400"
cinit-conf.svc-create.template "${SVC}"
cinit-conf.svc.respawn.on "${SVC}"
cinit-conf.svc-on "${SVC}" "${BINARY_PATH}"
cinit-conf.svc-param.add "${SVC}" "${C_ON}" "${speed}" "${tty}"
cinit-conf.svc.dependency.add "${SVC}" "needs" $NEEDS
# add each getty to the "super-getty-service"
cinit-conf.svc.dependency.add "${SVCBASE}" "needs" "${SVC}"
i=$(($i+1))
done
exit 0

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,65 @@
#!/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 [ $# -lt 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
# 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
SVC_A_LDIR="${R_SVC_DIR}/${SVC_A}/${DEP}"
# Try to create dependency directory, if it does not exist
if [ ! -d "${SVC_A_LDIR}" ]; then
echo "${SVC_A}:+${DEP}"
mkdir "${SVC_A_LDIR}"
fi
# allow multiple dependencies to be added in one run
while [ $# -gt 0 ]; do
SVC_B="$1"; shift
# 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_LDEST="${SVC_A_LDIR}/${SVC_B_LNAME}"
echo "${SVC_A} ${DEP} ${SVC_B} (${SVC_B_LNAME})"
ln -sf "${SVC_B_SOURCE}" "${SVC_A_LDEST}"
done
exit 0

View file

@ -0,0 +1,50 @@
#!/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/>.
#
#
# Filesystemcheck
# Warning: Ubuntu has UUIDs:
# root@ubuntu:~# cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'vol_id --uuid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
# [...]
# UUID=405998e4-63ba-4190-8a69-488bd81b9d39 / ext3 relatime,errors=remount-ro 0 1
#
# But the mtab of the running system contains the useful entry
#
set -e
. "$(dirname $0)/cinit-conf.read-conf"
if [ $# -ne 2 ]; then
echo "$(basename $0): servicename device"
exit 1
fi
SVC="$1"; shift
DEVICE="$1"; shift
BINARY_PATH="$(which fsck)"
cinit-conf.svc-create.template "${SVC}"
cinit-conf.svc-on "${SVC}" "${BINARY_PATH}"
cinit-conf.svc-param.add "${SVC}" "${C_ON}" "${DEVICE}"

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,49 @@
#!/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/>.
#
#
# Start ntpdate
#
################################################################################
# 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
. "${__abs_mydir}/cinit-conf.read-conf"
if [ $# -ne 0 ]; then
echo "${__myname}: (no args)"
exit 1
fi
. /etc/default/ntpdate
if [ -z "$NTPSERVERS" ]; then
echo "No ntp servers found, aborting"
exit 1
fi
BINARY_PATH="$(which ntpdate)"
SVC="local-services/ntpdate"
cinit-conf.svc-create.template "${SVC}"
cinit-conf.svc-on "${SVC}" "${BINARY_PATH}"

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,56 @@
#!/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 NFS shares
#
################################################################################
# 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
. "$(dirname $0)/cinit-conf.read-conf"
if [ $# -ne 0 ]; then
echo "${__myname}: <no args>"
echo ""
echo " Enable NFS mounts"
echo ""
exit 23
fi
SVC="mount/nfs"
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}" "-a" "-t" "nfs"
BINARY_PATH="$(which umount)"
cinit-conf.svc-off "${SVC}" "${BINARY_PATH}"
cinit-conf.svc-param.add "${SVC}" "${C_OFF}" "-a" "-t" "nfs"
# NFS mounts always need the network to be up
cinit-conf.svc.dependency.add "${SVC}" "needs" $NEEDS "network"
exit 0

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,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/>.
#
#
# mount / read/write (and fsck it before)
#
set -e
. "$(dirname $0)/cinit-conf.read-conf"
# mount root read/write
SVC="mount/root"
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" "-o" "remount,rw" "/"
SVC_FSCK="${SVC}/fsck"
BINARY_PATH="$(which fsck)"
DEV="$(mount | awk '$3 ~ /\/$/ { print $1 }')"
cinit-conf.svc.fsck.linux "${SVC_FSCK}" "${DEV}"
cinit-conf.svc.dependency.add "${SVC}" "needs" "${SVC_FSCK}"

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,49 @@
#!/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/>.
#
#
# Initialise the /etc/mtab file on Linux:
# Ubuntu Jaunty manually creates it, we just ignore it
# and link it to /proc/mounts.
#
# This is probably not the perfect way, as /proc/mounts
# contains more stuff than useful. Maybe we can add a
# "add mount to mtab" dependency to all mount/X/ services,
# that depends on mount/root.
#
#
. "$(dirname $0)/cinit-conf.read-conf"
set -e
SVC="local-tuning/cleanup-mtab"
BINARY_PATH="$(which ln)"
# Is mount/proc needed or is it sane to link to an empty /etc/mtab
# by linking that to a non-existing file?
NEEDS="mount/root mount/proc"
cinit-conf.svc-create.template "${SVC}"
cinit-conf.svc-on "${SVC}" "${BINARY_PATH}"
cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-sf" "/proc/mounts" "/etc/mtab"
cinit-conf.svc.dependency.add "${SVC}" "needs" $NEEDS
exit 0

View file

@ -0,0 +1,58 @@
#!/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/>.
#
#
# Start network
#
################################################################################
# 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
. "$(dirname $0)/cinit-conf.read-conf"
if [ $# -ne 0 ]; then
echo "${__myname}: <no args>"
echo ""
echo " I start all your network devices"
echo ""
exit 23
fi
SVC="network/devices"
BINARY_PATH="$(which ifup)"
cinit-conf.svc-create.template "${SVC}"
cinit-conf.svc-on "${SVC}" "${BINARY_PATH}"
cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-a"
# FIXME: Is it really senseful to call ifdown at shutdown?
# Or is that useless anyway? Besides some DHCP_RELEASEs
BINARY_PATH="$(which ifdown)"
cinit-conf.svc-off "${SVC}" "${BINARY_PATH}"
cinit-conf.svc-param.add "${SVC}" "${C_OFF}" "-a"
# no known dependencies
#cinit-conf.svc.dependency.add "${SVC}" "needs" $NEEDS
exit 0

View file

@ -0,0 +1,48 @@
#!/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 Linux console
#
################################################################################
# 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
. "$(dirname $0)/cinit-conf.read-conf"
if [ $# -ne 0 ]; then
echo "${__myname}: <no args>"
echo ""
echo " Setup Linux console"
echo ""
exit 23
fi
SVC="local-tuning/setup-console"
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}" "--force"
exit 0

View file

@ -0,0 +1,53 @@
#!/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/>.
#
#
# Start a shell - the debugging example
#
################################################################################
# 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
. "$(dirname $0)/cinit-conf.read-conf"
if [ $# -ne 0 ]; then
echo "${__myname}: <no args>"
echo ""
echo " I start a local shell"
echo ""
exit 23
fi
SVC="local-services/shell"
BINARY_PATH="$(which sh)"
WANTS="mount/root mount/proc"
cinit-conf.svc-create.template "${SVC}"
cinit-conf.svc-on "${SVC}" "${BINARY_PATH}"
cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-i"
cinit-conf.svc-respawn.on "${SVC}"
cinit-conf.svc.dependency.add "${SVC}" "wants" $WANTS
exit 0

View file

@ -0,0 +1,53 @@
#!/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/>.
#
#
# Start sshd
#
################################################################################
# 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
. "$(dirname $0)/cinit-conf.read-conf"
if [ $# -ne 0 ]; then
echo "${__myname}: <no args>"
echo ""
echo " I start the OpenSSH server (not just sshd, Mike)."
echo ""
exit 23
fi
SVC="remote-services/sshd"
BINARY_PATH="$(which sshd)"
#NEEDS="mount/root mount/proc"
cinit-conf.svc-create.template "${SVC}"
cinit-conf.svc-on "${SVC}" "${BINARY_PATH}"
cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-D"
# no known dependencies
#cinit-conf.svc.dependency.add "${SVC}" "needs" $NEEDS
exit 0

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,58 @@
#!/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/>.
#
#
# Cleanup temp directories
#
################################################################################
# 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
. "$(dirname $0)/cinit-conf.read-conf"
if [ $# -lt 1 ]; then
echo "${__myname}: tmpdirs... "
echo ""
echo " I remove those tempdirs on bootup."
echo ""
exit 23
fi
SVC="local-tuning/tmp-clean"
BINARY_PATH="$(which rm)"
# FIXME: We would need all the related partions to be r/w
# So probably add a warning somewhere or add another argument,
# specifyng other needs
NEEDS="mount/root"
cinit-conf.svc-create.template "${SVC}"
cinit-conf.svc-on "${SVC}" "${BINARY_PATH}"
cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-rf"
cinit-conf.svc.dependency.add "${SVC}" "needs" $NEEDS
# all other arguments are temp directories
cinit-conf.svc-param.add "${SVC}" "${C_ON}" "$@"
exit 0

View file

@ -0,0 +1,58 @@
#!/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/>.
#
#
# Recreate temp directories
#
################################################################################
# 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
. "$(dirname $0)/cinit-conf.read-conf"
if [ $# -lt 1 ]; then
echo "${__myname}: tmpdirs... "
echo ""
echo " I create those tempdirs on bootup."
echo ""
exit 23
fi
SVC="local-tuning/tmp/create"
BINARY_PATH="$(which mkdir)"
# FIXME: We would need all the related partions to be r/w
# So probably add a warning somewhere or add another argument,
# specifyng other needs
NEEDS="mount/root"
cinit-conf.svc-create.template "${SVC}"
cinit-conf.svc-on "${SVC}" "${BINARY_PATH}"
# all other arguments are temp directories
cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-m" "1777" "$@"
cinit-conf.svc.dependency.add "${SVC}" "needs" $NEEDS
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/>.
#
#
# Copny static files to /dev
#
. "$(dirname $0)/cinit-conf.read-conf"
set -e
if [ $# -ne 0 ]; then
echo "$(basename $0) (no args)"
exit 1
fi
SVC="local-tuning/udev/copy-static"
BINARY_PATH="$(which cp)"
cinit-conf.svc-create.template "${SVC}"
cinit-conf.svc-on "${SVC}" "${BINARY_PATH}"
cinit-conf.svc-param.add "${SVC}" "${C_ON}" "-a" "/lib/udev/devices/" "/dev/"
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,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,19 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: Allow non-parallel bootup
desc: For easier debugging and people who are confused with parallel startup
type: :task
component: core
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-10-24 14:18:44.270577 Z
references: []
id: 3a620ff450d0c685a5567d25d77230763c835c8e
log_events:
- - 2009-10-24 14:18:44.990439 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""
git_branch:

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,19 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: Export cinit.mkheader to cconf
desc: To buid up the complete build suite.
type: :task
component: build
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-11-18 16:03:16.116135 Z
references: []
id: 638fcf34a8d68c88ed48313ffd3b8a9ecb2fbbd4
log_events:
- - 2009-11-18 16:03:16.685812 Z
- Nico Schottelius <nico@ikn.schottelius.org>
- created
- ""
git_branch:

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,22 @@
--- !ditz.rubyforge.org,2008-03-06/issue
title: Add dumpstate function
desc: |-
It should write a cconfig tree similar to the configuration
Additionally it should contain a "state" field
This feature is the base for hot-upgrading cinit.
type: :task
component: cinit
release: future
reporter: Nico Schottelius <nico@ikn.schottelius.org>
status: :unstarted
disposition:
creation_time: 2009-10-05 20:57:25.373348 Z
references: []
id: b5428a5e8b064827fac8f1bc905cd5b304961f77
log_events:
- - 2009-10-05 20:57:25.943152 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).

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