In this guide, we will discuss about Ubuntu, Run Level and Auto Starting Application with some practical example to configure app to auto start. Silence is golden, so one day’s break in the flow of our publication! Basically, we are checking vulnerabilities of the virtualization software on our servers. Run Level is not much known to the casual users, it is quite important for precise control of Applications and the order of starting application can impact performance – yes, logically they should not, but it can happen on Cloud Server due to multi-tenancy and virtualization software.
Ubuntu, Run Level and Auto Starting Application : Basics
Run Level is written as runlevel
, it refers to a mode of operation in UNIX and Unix like System. Since many decades ten runlevel used to exist, now usually seven run levels exist, they are numbered from zero to six. S used as a synonym for one of the levels. Only one run level is executed on boot up – run levels are not executed sequentially, numerical value does not matter. This is a kind of directory located in /etc/
and we can find the runlevel with the command like who -r
. It will, return result like run-level 2 2014-10-03 18:48
.
“Runlevel” defines the state of the machine after boot. You can get the print of the scripts or applications running from your runlevel and you are changing directory there :
---
1 | ls -al /etc/rc$(runlevel | cut -d " " -f 2).d/ |
This is an example of using UNIX pipe. Now we need to auto start an application on boot. Take that application is well packaged and has existence inside /etc/init.d/
. For example, take application’s name is abhishek-nova-test
and we need to run it as second process during boot after se-linux-distrubution
starts.
Ubuntu, Run Level and Auto Starting Application : Examples
Just to tell you something more, we need to interrupt; this numerical value of set runlevel can be changed. Do not change it unless required. Init
is the mother of all processes with PID numbered as 1. It is a complicated topic, but; just know :
Runlevel 0 = halt
Runlevel 1 = single-user
Runlevels 2-5 = multi-user
Runlevel 6 = reboot system
KDE uses runlevel 5. We can change the runlevel
with command init 3
or editing the file /etc/inittab
. Only a reboot will be enough to reflect the change. It is very dangerous because on runlevel 3, web server might not be running by default. Except for educational purpose or development, do not change these unless you know fully about Linux Kernel.
Inside /etc/
you will find lot of directories like /etc/rc2.d
, /etc/rc3.d
and so on. You can view this from SFTP and browse inside /etc/rc2.d
– it contains symlinked directories. What we need to do is Symlinking.
So, for our example, we went to our runlevel and got print of the serial of the running applications :
1 | ls -al /etc/rc$(runlevel | cut -d " " -f 2).d/ |
abhishek-nova-test
is not present and there is nothing named S02-Appname
(otherwise the guide will become difficult to understand, just for example). First we will symlink :
1 | ln -s /etc/init.d/abhishek-nova-test abhishek-nova-test |
Now, as per convention we need to rename and per our need, the serial should be second :
1 | mv abhishek-nova-test S02abhishek-nova-test |
If you do a reboot
, it will work. If you want to delete, simply run rm -r /etc/rc2.d/S02abhishek-nova-test && reboot
.