≡ Menu

How to Run and Execute Command When I Log Out Of Linux Session?

I‘m using CentOS 7 server. I need to run a command when I logout using ssh or bash shell. So in Linux and Unix-like systems, how can I run a command to execute when I log out my session?

You can easily get a command or shell script executed when you logout of the system. This is a shell specific feature and you need to add your command or script as per your shell version:

  1. /bin/bash – BASH shell user create or update a file called .bash_logout in your home directory.
  2. /bin/csh or /bin/tcsh – CSH/TCSH shell user create or update a file called .logout in your home directory.
  3. Bourne / KSH Shell user need to setup a trap in .profile file as explained here.

Example: Run a command when I log out

Edit/append the following in your $HOME/.bash_logout (BASH) or $HOME/.logout (CSH/TCSH) file:

 ## clear the screen ##
clear
## Disk info ##
du -s $HOME
 
## Delete mysql cmd file ##
/bin/rm $HOME/.mysql_history
 
## add rest of the stuff here for bash

A note about Bourne / KSH Shell users

Edit/append the following in your $HOME/.profile file:

trap '. $HOME/.ksh_logout; exit' 0

Save and close the file. Finally create a text file called $HOME/.ksh_logout, enter:
$ vi $HOME/.ksh_logout
Add the following:

 ## Disk info ##
du -s $HOME
 
# Show date ##
date
 
## Sleep for some time so that I can read info ##
sleep 5
 
## clear the screen ##
clear
 
## Delete mysql cmd file ##
/bin/rm $HOME/.mysql_history
 
## add rest of the stuff here for ksh ##

A note about security

Please note that if you put too many commands or run a large script or script contains errors, an unauthorised person could gain access to your shell account by killing its execution. So, I recommend that you wait till you get a login prompt again. This hack will not work with GUI (KDE/Gnome/Xfce4) based login. This only works with a shell based session or ssh based session.

See man pages for more info – bash(1), ksh(1), tcsh(1).

Share this tutorial on:

Your support makes a big difference:
I have a small favor to ask. More people are reading the nixCraft. Many of you block advertising which is your right, and advertising revenues are not sufficient to cover my operating costs. So you can see why I need to ask for your help. The nixCraft, takes a lot of my time and hard work to produce. If you use nixCraft, who likes it, helps me with donations:
Become a Supporter →    Make a contribution via Paypal/Bitcoin →   

Don't Miss Any Linux and Unix Tips

Get nixCraft in your inbox. It's free:



{ 2 comments… add one }
  • Colin February 13, 2015, 1:34 pm

    You could wrap it up in your .profile (or .bash_profile, etc.). Something like

    #!/bin/bash
    /bin/bash
    . echo “You are now logging out at “`date`

    It is important that the last command is run in place of the shell (hence the “. ” at the start of the line) or you will have to effectively log out twice.

  • Franjo March 16, 2015, 1:22 pm

    Every bit of code is working as written when using exit command.
    But !
    When I close Putty or terminal window and answer yes to question Are you shure …, or Do you want … the window closes and .bash_logout is not processed.
    I need to delete .Xauthority file no metter how do I get out of ssh session!

    Regards, Franjo

Leave a Comment

You can use these HTML tags and attributes: <strong> <em> <pre> <code> <a href="" title="">


   Tagged with: , ,