INIT commands initializes the commands which are scheduled and run accordingly to get the required results. INIT is also known as first process in UNIX and Linux operating systems.
This command below represents the process PID 1
[symple_box color=”gray” text_align=”left” width=”100%” float=”none”]
bash-3.2# which init
/usr/sbin/init
The INIT’s config file can be located in
bash-3.2# cat /etc/inittab
# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
# The /etc/inittab file controls the configuration of init(1M); for more
# information refer to init(1M) and inittab(4). It is no longer
# necessary to edit inittab(4) directly; administrators should use the
# Solaris Service Management Facility (SMF) to define services instead.
# Refer to smf(5) and the System Administration Guide for more
# information on SMF.
#
# For modifying parameters passed to ttymon, use svccfg(1m) to modify
# the SMF repository. For example:
#
# # svccfg
# svc:> select system/console-login
# svc:/system/console-login> setprop ttymon/terminal_type = “xterm”
# svc:/system/console-login> exit
#
#ident “@(#)inittab 1.41 04/12/14 SMI”
ap::sysinit:/sbin/autopush -f /etc/iu.ap
sp::sysinit:/sbin/soconfig -f /etc/sock2path
smf::sysinit:/lib/svc/bin/svc.startd >/dev/msglog 2<>/dev/msglog </dev/console
p3:s1234:powerfail:/usr/sbin/shutdown -y -i5 -g0 >/dev/msglog 2<>/dev/msglog
[/symple_box]
INIT’s config file above has the list of various runlevels which run the restart, shutdown, multi-user support with networking etc. This file is basically a table which gets the details of the commands which need to be executed and are in a queue to start the service accordingly.
There are various INIT Runlevels available from 0-S
0 – shutdown
1 – single user mode(no networking support)
2 – multi-user support without NFS
3 – multi-user support with NFS (default)
4 – unused – used by application vendors
5 – interactive boot
6 – reboot
S – single user mode(no networking support)
To check the current and previous runlevels use the command below which works in Unix(Solaris, AIX) and Linux(RHEL, Cent OS).
[symple_box color=”gray” text_align=”left” width=”100%” float=”none”]
bash-3.2# who -r
. run-level 3 Feb 2 02:59 3 0 S
[/symple_box]
You can find many INIT files in
[symple_box color=”gray” text_align=”left” width=”100%” float=”none”]
bash-3.2# cd /etc/init.d/
bash-3.2# ls
PRESERVE dhcp lu slpd
README dodatadm.udaplt mipagent swupboots
acct drvconfig mkdtab sysetup
acctadm dtlogin ncakmod ufs_quota
apache init.dmi ncalogd uucp
autoinstall init.sma nfs.server vmware-tools
boot.server init.snmpdx nscd volmgt
cachefs.daemon init.wbem pcmcia
deallocate ldap.client pppd
devlinks llc2 sendmail
[/symple_box]
You can even find the shell scripts of the runlevels as shown below.
[symple_box color=”gray” text_align=”left” width=”100%” float=”none”]
bash-3.2# cd /sbin/
bash-3.2#
bash-3.2# ls -l rc?
-rwxr–r– 3 root sys 1983 Jan 22 2005 rc0
-rwxr–r– 1 root sys 2242 Jan 22 2005 rc1
-rwxr–r– 1 root sys 2536 Jan 22 2005 rc2
-rwxr–r– 1 root sys 2567 Jan 22 2005 rc3
-rwxr–r– 3 root sys 1983 Jan 22 2005 rc5
-rwxr–r– 3 root sys 1983 Jan 22 2005 rc6
-rwxr–r– 1 root sys 5125 Jan 22 2005 rcS
bash-3.2#
bash-3.2# file rc?
rc0: executable /sbin/sh script
rc1: executable /sbin/sh script
rc2: executable /sbin/sh script
rc3: executable /sbin/sh script
rc5: executable /sbin/sh script
rc6: executable /sbin/sh script
rcS: executable /sbin/sh script
bash-3.2# less rc0
[/symple_box]
[symple_divider style=”solid” margin_top=”20px” margin_bottom=”20px”]
[symple_box color=”gray” text_align=”left” width=”100%” float=”none”]
If you like the blog please follow us [icon name=”icon-facebook”] [icon name=”icon-twitter”] [icon name=”icon-google-plus-sign”]
[/symple_box]