Sunday, April 23, 2017

Centos 7 Booting automatically into Graphical mode

Centos 7  installation end up into terminal mode start up ,if no INTERNET connectivity within VM instance.

running "dhclient" command resolved this problem for session.For permanent solution we need to check our Instance settings in Virtual Box.

In settings --> Network modify as follows

1)  Enable Network Adapter
2)  Select "Bridged Adapter" from "Attached to" dropdown
3)  select interface (eth0) from "Name" dropdown
4) Check "Cable Connected"  checkbox from Advanced Section
5) Promiscuous Mode to Deny (Default)

On host Linux machine run ifconfig and check active interface usually its "eth0".Save Changes & and restrat VM instance.
   Now from Command Prompt in Guest OS run


to check if internet is accessible or not.

Now we have to install Gnome as follows

        yum groups install "GNOME Desktop"

we will check current target

    systemctl get-default

Output expected is "", if not then it will first boot into terminal then we have to run manually "startx" command for graphical mode.

Lets set system to automatically boot into graphical mode so we have to set default display manager with gnome installed we are going for "gdm" (other choices are kdn,xdm).

    sudo systemctl enable gdm.service
    sudo systemctl set-default

We can revert back to terminal mode using following

    sudo systemctl disable gdm.service
    sudo systemctl set-default

In older system usually there was setting of runlevel called "initd" ,which is currently replaced by "systemd".

Both this system used for initialization of system during boot process . also used for starting & stopping services usually refered as daemon.

The key file in this regard was  "/etc/inittab" ,which need to be edited suitablly.

    For logging into terminal initdefault need to set as 3    


    For logging into graphical mode initdefault need to set as 5


    Initd Equivalent for "systemctl get-default" command is
        cat /etc/inittab | grep initdefault

    Relating Systemd & Initd

           Init RunLevel    Systemd Target         Run Level Description

        0            The halt runlevel - this is the runlevel at which the system shuts down. For obvious reasons it is
                           unlikely you would want this as your default runlevel.

        1           Single runlevel. This causes the system to start up in a single user mode under which only the root user can log in. In this
                                                   mode the system does not start any networking or X windowing, X or multi-user services. This run level is ideal for system
                                                   administrators to perform system maintenance or repair activities.

        2       Boots the system into a multi-user mode with text based console login capability. This runlevel does not, however, start the

        3       Similar to runlevel 2 except that networking services are started. This is the most common runlevel for server based systems
                                                   that do not require any kind of graphical desktop environment.

        4       Undefined runlevel. This runlevel can be configured to provide a custom boot state.

        5       Boots the system into a networked, multi-user state with X Window System capability. By default the graphical desktop
                                                   environment will start at the end of the boot process. This is the most common run level for desktop or workstation use.

        6               Reboots the system. Another runlevel that you are unlikely to want as your default.

        Please refer for more information on initd

    References :


Sunday, April 9, 2017

REDIS on Debian 9 Installation Notes

To install redis on Debian 9 we need to download source code then we need to compile it by unzipping then running make,make install & finally from util dir run "".

Please refer below link for  detail instructions.

Here are notes of installation.

Installation Details
Default Port:6379
Data Directory:/var/lib/redis/6379
EXEC PATH:/usr/local/bin/redis-server

redis service start /stop/status/restart:

sudo service redis_6379 start
sudo service redis_6379 stop
sudo service redis_6379 restart
sudo service redis_6379 status

How to start command line interface for redis:

Adding redis to auto start:
sudo update-rc.d redis_6379 defaults

Examples of same articles ( are are elaborated further below in case of cryptic information while others are summarized.

Checking if Redis is Up:

SET users:GeorgeWashington "job: President, born:1732, dislikes: cherry trees"
GET users:GeorgeWashington

Expiry of key:
SET classified:information "Secret Stuff"
EXPIRE classified:information 45

this will key expire in 45 second while below command will give time remaining in second for expiry for given key (here classified)

TTL classified:information

Increment/Decrement of Key (numeric)
SET population 6
INCRBY population 10
INCR population
GET population

on same line 'of "INCR" ,"DECR" will decrement value by 1

DECR population

and "DECRBY" is similar counterpart of "INCRBY"

DECRBY population 5

Running commnds in a transaction(all or nothing):

following command will create transaction of commands and will execute them in a order.

SET population 6
INCRBY population 10
INCR population

Removed Blocked transaction:
   if redis interrupted while processing transaction then it goes into blocking stage to get out of this mess below command is used


                    # SET
SET (Multiple values against single key):
   SET is type of collection which is order agnostic,SADD adds element to set

SADD colors red
SADD colors orange
SADD colors yellow
SADD colors orange

   as orange is already added set will not take duplicate value,below command will give list of all members of set "colors"


   while below command will give random number from our set "colors"


Intersection of two sets:
   creating one more set with some common elements

SADD colors_new orange
SADD colors_new green
SADD colors_new yellow

   below command will give intersection of our two sets colors & colors_new

SINTER colors colors_new

Checking if a set has a given member:
   Below command will check if green is member of colors_new set

SISMEMBER colors_new green

                  # SORTED SET
we are adding key along with a number association that will be used for ordering.

zadd countries 9 Tuvalu
zadd countries 10 India
zadd countries 11 Japan
zadd countries 7 USA
zadd countries 50 China
zadd countries 34 Tibet

   inside collection they get sorted based on number associated (low to high)

Low to high sorting:
     "withscores" differ from penultimate command it gives both value & associated number unlike without it.
zrange countries 0 -1
zrange countries 0 -1 withscores

High to low sorting:
ZREVRANGE countries 0 -1

   below command will display only display element in array with index 0,1 & 2 when sorted from low to high

zrange countries 0  2 withscores

negative index can also be used with convention that -1 is the last element of the sorted set,-2 the penultimate element.
e.g. wrt collection below

 7 -->"USA"
 9 --> "Tuvalu"
10 --> "India"
11 --> "Japan"
34 --> "Tibet"
50 --> "China"

 china is of index -1,tibet is of -2 ,japan -3 so on

Removing a element from sorted set:
below command will remove "USA" from sorted set

ZREM countries  "USA"

this can be confirmed by seeing members of sorted set

zrange countries 0 -1

                   # LIST
"RPUSH" command add a value to the end of a list

rpush lunch.provider alice
rpush lunch.provider bob
rpush lunch.provider carol
rpush lunch.provider don
rpush lunch.provider emily

but "lpush" adds a value to start of list

lpush lunch.provider zoe

to view all elements in list below command is used

lrange lunch.provider 0 -1

to remove last element of list RPOP used

RPOP lunch.provider

to remove first element of list LPOP used

LPOP lunch.provider

Trim list to specific size:
Based on counting 1st element of index as 0,till index become 2 all element will be kept while all others will be deleted

LTRIM lunch.provider  0  2

this list structure can be used to emulate both stack as well as queue.

                               # HASH KEY

Hash is a key value pair based collection it is efficient in storing large amount of data

hmset user:1 username jsmith password 4bAc0s email

this will store multiple key values namely

username -->jsmith
password --> 4bAc0s
        email  --->

against single collection name "user:1"

can be viewed as

hgetall user:1

to retreive only value of single key against collection name say email in above scenario we can issue

hget user:1  email

if we want retrive values of multiple keys against collection name below command is used ,it will  retrive value for contact & email field

HMGET user:1   email contact

to add one more key value in this collection name

HSET user:1 contact 02334556

verify now by looking at whole collection as below

hgetall user:1