Visit Our UNIX and Linux User Community


Shutdown script


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Shutdown script
# 1  
Old 09-14-2005
Shutdown script

Hi Guys,

I want to execute few of my bash script, so that whenever someone calls shutdown now -r command, I want my script to execute first before shutting down.

Any help please?????

I've just started playing with the unix system, so far its been brilliant....
# 2  
Old 09-14-2005
When you reboot, what you actually do is change the runlevel to 6. In /etc/init.d you can find all kinds of scripts that are started/stopped when entering specific runlevels. This is where your script should live (or be symlinked to).

Now change into /etc/rc6.d. You see lots of symlinks to the scripts in /etc/init.d. Some start with a K, some start with an S. When changing to runlevel 6 (read: you execute a shutdown -r now), the services that start with a K will be stopped, the ones starting with an S will be started. (See where I'm going?)

The number after K or S is an indication of the order in which these scripts will be run.
Code:
root@k2:/etc/rc6.d# ls -l
total 0
lrwxrwxrwx  1 root root  18 Apr  4  2001 K10ipchains -> ../init.d/ipchains
lrwxrwxrwx  1 root root  14 Mar 26  2001 K11cron -> ../init.d/cron
lrwxrwxrwx  1 root root  17 Mar 26  2001 K12kerneld -> ../init.d/kerneld
lrwxrwxrwx  1 root root  16 Apr  4  2001 K20apache -> ../init.d/apache
lrwxrwxrwx  1 root root  15 Mar 26  2001 K20inetd -> ../init.d/inetd
lrwxrwxrwx  1 root root  17 Mar 26  2001 K20logoutd -> ../init.d/logoutd
lrwxrwxrwx  1 root root  17 Mar 26  2001 K20makedev -> ../init.d/makedev
lrwxrwxrwx  1 root root  17 Apr  4  2001 K20postfix -> ../init.d/postfix
lrwxrwxrwx  1 root root  16 Dec  9  2003 K20rinetd -> ../init.d/rinetd
lrwxrwxrwx  1 root root  15 May  9  2003 K20snmpd -> ../init.d/snmpd
lrwxrwxrwx  1 root root  13 Mar 29  2001 K20ssh -> ../init.d/ssh
lrwxrwxrwx  1 root root  19 Jan 26  2005 K20tivoli-sm -> ../init.d/tivoli-sm
lrwxrwxrwx  1 root tiggr 15 Apr 12  2001 K21resin -> ../init.d/resin
lrwxrwxrwx  1 root tiggr 13 Apr  9  2001 K23ntp -> ../init.d/ntp
lrwxrwxrwx  1 root root  20 Dec  6  2003 K25hwclock.sh -> ../init.d/hwclock.sh
lrwxrwxrwx  1 root tiggr 25 Jul 10  2002 K25nfs-user-server -> ../init.d/nfs-user-server
lrwxrwxrwx  1 root  1005 15 Oct 10  2003 K25resin -> ../init.d/resin
lrwxrwxrwx  1 root root  19 Mar 26  2001 K30setserial -> ../init.d/setserial
lrwxrwxrwx  1 root tiggr 17 May 23  2002 K50proftpd -> ../init.d/proftpd
lrwxrwxrwx  1 root tiggr 14 Apr 20  2003 K85bind -> ../init.d/bind
lrwxrwxrwx  1 root root  13 Mar 26  2001 K89atd -> ../init.d/atd
lrwxrwxrwx  1 root root  15 Apr  4  2001 K89klogd -> ../init.d/klogd
lrwxrwxrwx  1 root root  18 Mar 26  2001 K90sysklogd -> ../init.d/sysklogd
lrwxrwxrwx  1 root root  17 Mar 26  2001 S10portmap -> ../init.d/portmap
lrwxrwxrwx  1 root root  18 Mar 26  2001 S20sendsigs -> ../init.d/sendsigs
lrwxrwxrwx  1 root root  17 Mar 26  2001 S30urandom -> ../init.d/urandom
lrwxrwxrwx  1 root root  22 Mar 26  2001 S31umountnfs.sh -> ../init.d/umountnfs.sh
lrwxrwxrwx  1 root root  20 Mar 26  2001 S35networking -> ../init.d/networking
lrwxrwxrwx  1 root root  18 Mar 26  2001 S40umountfs -> ../init.d/umountfs
lrwxrwxrwx  1 root root  16 Mar 26  2001 S90reboot -> ../init.d/reboot

The above listing is from a Debian-server, your listing may look different.

Now, to execute a script before a reboot, just make sure it's listed here.

You should carefully pick the order in which you execute YOUR script, you don't want to stop your mailserver if you want your script to mail you something. I think you should be safe if you let the symlink to your script start with S10, so it gets executed almost at once.
This User Gave Thanks to indo1144 For This Post:
# 3  
Old 09-14-2005
I have a brand new installation and only consist of S20reboot. So according to your article above, if i create a script called S10test which could contain something like :
Code:
#! /bin/sh
echo "hello unix world"

Then if I give it correct premission i.e. chmod a+rwx S10test. Then can I do shutdown now -r and I should see it been executed. Is this correct??


Thanks very much. I'll be unix guru at this rate (LOL) ...
# 4  
Old 09-14-2005
Scripts starting with S are executed on Startup. Scripts starting with K are executed on shutdown. So, no, your script will be seen on boot, not on shutdown.
# 5  
Old 09-14-2005
Er, no.

Quote:
Originally Posted by RTM
Scripts starting with S are executed on Startup. Scripts starting with K are executed on shutdown. So, no, your script will be seen on boot, not on shutdown.
It's my understanding that K scripts are Killed when you enter that runlevel, and S scripts are Started. So rc6.d/K10ssh will kill the ssh daemon when you enter runlevel 6, but rc6.d/S10foo will start the foo daemon.

All that depends on the init.d/foo or ssh scripts using the right functions to parse $0 correctly, of course. If you don't do that, I don't think it matters what you name the rc?.d script - it'll just run when you enter that runlevel.
# 6  
Old 09-14-2005
Original request
Quote:
I want my script to execute first before shutting down.
He wants something to run before shutting down - that means he wants a K script - that is why I stated the difference between S and K - he stated he wanted to see execution BEFORE shutting down - naming the script S10test, would cause him to see execution AFTER shutdown on reboot.
# 7  
Old 09-14-2005
Quote:
Originally Posted by alpha_manic
I have a brand new installation and only consist of S20reboot. So according to your article above, if i create a script called S10test which could contain something like :
Code:
#! /bin/sh
echo "hello unix world"

Then if I give it correct premission i.e. chmod a+rwx S10test. Tzen can I do shutdown now -r and I should see it been executed. Is this correct??
That's right, although the execution of your script may happen so fast, you won't see the output.
Quote:
Originally Posted by rtm
Scripts starting with S are executed on Startup. Scripts starting with K are executed on shutdown. So, no, your script will be seen on boot, not on shutdown.
This can be quite confusing. Last week I had to dig into this matter, because I had to create my own init-script from scratch and I stumbled upon the following text.
Quote:
From Internet link : The name of each symbolic link begin with either a K or an S. The K links are processes that are killed on that runlevel, while those beginning with an S are started.
So the S10test script will in fact be executed prior to the actual reboot.

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Interactive Shutdown script

Hello folks. I will start out by saying as far as unix/linux scripting goes I know less about it than i do about giving birth (I'm a guy hehe). I am looking to make a shutdown script that will either shut down the system or reboot it using one of the shutdown run methods IE init 2 - 5 or a base... (1 Reply)
Discussion started by: azurie
1 Replies

2. Shell Programming and Scripting

Script to shutdown XP clients

My staff seem to have a habit of leaving thier PCs on over night so I need to write a short script to shutdown any XP clients logged into the local samba domain that I can run as a cron job at a set time. I can list the connected clients and their IP addresses with: $ smbstatus -b Samba... (6 Replies)
Discussion started by: barrydocks
6 Replies

3. Shell Programming and Scripting

Startup and shutdown script

Hi all, I'm writing a script to stop & start oracle: su - oracle -c "sqlplus / as sysdba" -c "shutdown immediate">> ${log} 2>&1 The {log} refers to the log file. The part in bold gives error: /usr/sbin/shutdown: Only root can run /usr/sbin/shutdown Pls suggest how to correct this. ... (5 Replies)
Discussion started by: frum
5 Replies

4. Shell Programming and Scripting

db shutdown script

I am going to create shutdown database script. We have dabase shutdown script. But i need take dabase which online and make it down. I got user id which needs to dabase to down ID=`ps -ef | grep -i pmon | grep -v grep | awk '{print $1}'` ( got orace side DB=`ps -ef | grep -i pmon |... (1 Reply)
Discussion started by: allwin
1 Replies

5. Shell Programming and Scripting

Shutdown Script

Im writing a script to read a file called shutdown.cf and shut down any scripts that are listed there. I have came up with the following based on things I saw in similar programs but it doesn not work: Has anybody any idea what I may be doing wrong? Cheers Paul (4 Replies)
Discussion started by: runnerpaul
4 Replies

6. UNIX for Dummies Questions & Answers

Script to force Oracle database shutdown when shutdown immediate does not work

I have Oracle 9i R2 on AIX 5.2. My Database is running in shared server mode (MTS). Sometimes when I shutdown the database it shutsdown cleanly in 4-5 mints and sometimes it takes good 15-20 minutes and then I get some ora-600 errors and only way to shutdown is by opening another session and... (7 Replies)
Discussion started by: aixhp
7 Replies

7. Shell Programming and Scripting

Script sh for shutdown

Hi, i need shutdown a pc, is in the same network what command i can use in the script :o ? (1 Reply)
Discussion started by: Dymblos
1 Replies

8. HP-UX

Shutdown script

Hi, I am on Alpha Server with HP Tru64 system. I wish to setup shutdown to automatically and cleanly shutdown informix during the shutting down of the system. Ie. I was trying to use rc0.d to do this but failed. Has anyone tried doing this before? I already have the script and linked it to... (0 Replies)
Discussion started by: kingsto88
0 Replies

9. UNIX for Dummies Questions & Answers

A script for shutdown

I want to make a script to shutdown a unixware computer from other user then root. In Sco version i use "as root" but in the unixware i don't know. Please help me. 10x (12 Replies)
Discussion started by: kelu
12 Replies

10. UNIX for Dummies Questions & Answers

logout/shutdown script

I am running JDictd (http://www.informatik.uni-leipzig.de/~duc/Java/JDictd/) from tcsh in Terminal on Mac OS X (:=Darwin=FreeBSD/Mach). I am trying to get it to exit cleanly silently upon Mac OS X system shutdown. My idea was that if there was a logout script in FreeBSD (basically a script... (1 Reply)
Discussion started by: ropers
1 Replies

Featured Tech Videos