An overview of initng:

On boot, initng will be started as the first process (pid = 1) by the kernel.
At first, initng will parse configuration files located in /etc/initng for
critical information such as runlevel and service data. After that, all services
required by the default runlevel will be started as soon as their dependencies
are met, allowing services to run in parallel. This asynchronous execution can
dramatically improve boot time by better utilizing the system resources
(especially in the case of multiprocessor systems).

Features:

-Automatic restarting of services that crash
-Easy starting, stopping, listing services through ngc
-Easy adding/removing services from a runlevel through ng-update
-SPEED!

1) Installing initng:

For those of you that would like to use portage:

ACCEPT_KEYWORDS="~ARCH" emerge initng //Please note you need to replace ~ARCH with your architecture ex: ~x86 ~ppc and others

For those of you that have portage and would like to install the latest version:

#emerge subversion || apt-get install subversion
#svn checkout http://jw.dyndns.org/initng/svn/initng 
#cd initng 
#./autogen.sh
#./configure
#make install

For the rest of you:

# tar -zxvf initng*.tar.gz
# cd initng*
# ./configure
# make install

Configuring Grub:

Basically all you need to do here is add "init=/sbin/initng" to the line that starts with "kernel"

Example:

Before:

title=Gentoo Linux 2.6.12
root (hd0,0)
kernel /kernel-2.6.12-2  root=/dev/hdc3

After:

title=Gentoo Linux 2.6.12
root (hd0,0)
kernel /kernel-2.6.12-2  root=/dev/hdc3 init=/sbin/initng

Configuring Lilo:

ADD LATER

2) Configuring/Using initng:

First off you need to reboot your linux install inorder to do the following (Please remember to boot into the one that uses initng)

On the first console you will notice that you cannot log in and that you see 100% (If you do not please don't panic)

Now hit alt+F2 and proceed to login

If earlier you saw 100% complete then you are set and you can skip down to the section on X.org

If you did not:

type

#ngc -s |more

If you see anything that did not start up or has a waiting for dependency next to it please make note of it. Somethings are trivial and can just be removed (ex: keymaps and consolefont).

To remove the failed application:
# ng-update del failedapplication

2-1) Configuring X.org:

2-1-1) Mouse Troubles:

As of this time /dev/mouse does not exist. Inorder to get around this please change the path the mouse is on in your xorg.conf file from /dev/mouse to /dev/psaux.

Example:

Before:

Section "InputDevice"
    Identifier	"Mouse1"
    Driver	"mouse"
    Option "Protocol"    "IMPS/2"
    Option "Device"      "/dev/mouse"
    Option "ZAxisMapping" "4 5"
EndSection

After:

Section "InputDevice"
    Identifier	"Mouse1"
    Driver	"mouse"
    Option "Protocol"    "IMPS/2"
    Option "Device"      "/dev/psaux"
    Option "ZAxisMapping" "4 5"
EndSection

2-1-2) Nvidia Troubles:

At this point in time I have not been able to get the nvidia drivers that are in portage to work on initng. So the solution is to download the drivers from the nvidia website and install them.

Steps:
# modprobe -r nvidia
# sh NVIDIA*
# modprobe nvidia

After you have done those things you should just be able to start xorg by doing:
# startx

3) Adding or removing services from a run level:

First: Figure out the name of your service you can do this by looking through the /etc/initng folder (files ending in .i are services)

3-1) To Add a service to a runlevel:

ng-update add service runlevel

Examples:

# ng-update add daemon/sshd default <- this adds the ssh daemon to the runlevel "default"
# ng-update add system/alsasound default <- this adds alsasound to the runlevel "default"

3-2) To Remove a service from a runlevel:

ng-update del service runlevel (the runlevel part is optional but if you leave it out it removes it from all the runlevels its on)

Examples:
# ng-update del daemon/sshd <- this removes the ssh daemon from the runlevel "default"
# ng-update del system/alsasound default <- this removes alsasound from the runlevel "default"
# ng-update del daemon/sshd <- this removes the ssh daemon from every runlevel it is on
# ng-update del system/alsasound <- this removes alsasound from every runlevel it is on

4) Starting or Stopping a service:

First: Figure out the name of your service you can do this by looking through the /etc/initng folder (files ending in .i are services)

4-1) Starting a service:

ngc -u service

Example:

ngc -u daemon/sshd

4-2) Stopping a service:

ngc -d service

Example:

ngc -d daemon/sshd

5) A warm restart:

A warm restart is a feature in initng that lets you restart all of the services in a matter of seconds without actually rebooting the computer.

Warm Restart:

# ngc -x

6) Listing all services:

This lets you list all the services that are running which is particularly useful for troubleshooting and such matters.

Listing the services:

# ngc -s

7) To flush service data:

This lets you flush memory service data, and reload from disc.

Reloading the service:

ngc -r service

Example:

# ngc -r daemon/sshd

8) Zapping a service

This lets you kill a service especially if stopping it won't work

Zapping the service:

ngc -z service

Example:

# ngc -z daemon/sshd
