Wednesday, July 25, 2018

Friday, April 27, 2018

Shell Script 'action' Command

'action' is defined inside a library called functions. You have to source your script first with this library in order to use it. This library is a distro distribution dependent and none of these distro libraries are compatible with the others. In Ubuntu is /lib/lsb/init-functions, SuSE has /etc/rc.status and in Centos is /etc/rc.d/init.d/functions. Some distributions don't use it at all.

Example of 'action':
# Source function library.
. /etc/rc.d/init.d/functions

# Now you can use action:
action $"Perform an action:" /bin/true

In Centos 7, 'action' definition inside /etc/rc.d/init.d/functions is as the following:
# Run some action. Log its output.
action() {
    local STRING rc

    STRING=$1
    echo -n "$STRING "
    shift
    "$@" && success $"$STRING" || failure $"$STRING"
    rc=$?
    echo
    return $rc
}

Wednesday, April 25, 2018

Set or Change System Hostname

This will return the current hostname
$ hostname
MyHostame
To set hostname immediately:
$ hostname [MY_HOSTNAME]
This will change the hostname of your system immediately, but the original hostname will be restored upon next reboot. To set hostname to be permant follow the instructions below. For systemd based distributions(newer version of different Linux distributions such as latest Ubuntu, Debian, CentOS, Fedora, RedHat, etc. ) use the hostnamectl command:
$ sudo hostnamectl set-hostname [MY_HOSTNAME]
For sysvinit(in short init) based distributions(older linux distributions) edit /etc/hostname:
# vim /etc/hostname
Add a new line for the hostname in /etc/hosts:
# vim /etc/hosts
127.0.0.1 [MY_HOSTNAME]
And run:
# /etc/init.d/hostname restart
For RHEL/CentOS based systems that use init, edit /etc/sysconfig/network:
# vi /etc/sysconfig/network
/etc/sysconfig/network
NETWORKING=yes
HOSTNAME="[MY_HOSTNAME]"
GATEWAY="192.168.0.1"
GATEWAYDEV="eth0"
FORWARD_IPV4="yes"

Thursday, March 1, 2018

shmget errno 22 EINVAL: "Invalid Argument"

The man page says:

EINVAL A new segment was to be created and size < SHMMIN or size > SHMMAX, or no new segment was to be created, a segment with given key existed, but size is greater than the size of that segment.

This means that a memory segment still persists in the system. If your process is no longer running, run the ipcs command and remove the segment with ipcrm.

[root@myhost]# ipcs

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status
0x74010241 2818048    root      600        4          0
0x7401026c 2162689    root      600        4          0
0x00000000 3178498    root      644        52         2
0x74010240 2785283    root      600        4          0
0x00000000 3211268    root      644        16384      2
0x00000000 3244037    root      644        268        2
0x750ca262 3440646    root      644        2043293648 0

------ Semaphore Arrays --------
key        semid      owner      perms      nsems
0x000000a7 0          root      600        1

------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages
0x7504d462 9568256    root       666        0            0
0x7504d562 9601025    root       666        0            0
0x7504d662 2686978    root       666        0            0
0x7504d762 2719747    root       666        0            0
0x7504d862 5373956    root       666        0            0
0x7504d962 5406725    root       666        0            0
0x75108a62 9502726    root       666        0            0
0x000002bd 9535495    root       666        0            0

[root@myhost]# ipcrm -m 3440646
[root@myhost]# ipcs

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status
0x74010241 2818048    root      600        4          0
0x7401026c 2162689    root      600        4          0
0x00000000 3178498    root      644        52         2
0x74010240 2785283    root      600        4          0
0x00000000 3211268    root      644        16384      2
0x00000000 3244037    root      644        268        2

------ Semaphore Arrays --------
key        semid      owner      perms      nsems
0x000000a7 0          root      600        1

------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages
0x7504d462 9568256    root       666        0            0
0x7504d562 9601025    root       666        0            0
0x7504d662 2686978    root       666        0            0
0x7504d762 2719747    root       666        0            0
0x7504d862 5373956    root       666        0            0
0x7504d962 5406725    root       666        0            0
0x75108a62 9502726    root       666        0            0
0x000002bd 9535495    root       666        0            0

[root@myhost]#

Popular Posts

Recent Posts

Unordered List

Text Widget

Pages

Search This Blog

Powered by Blogger.