Sponsored Content
Top Forums Programming Application Cleanup during Linux Shutdown Post 302393811 by Corona688 on Tuesday 9th of February 2010 04:41:24 PM
Old 02-09-2010
Quote:
Originally Posted by whatisron
Interesting thought... but yes, I am fully logged out well before 30 seconds. I just run the app:
% ./test &
...and then logout.
What shell are you using? If it's bash, you need to run 'disown' after that so bash doesn't try and wait for it.
Quote:
If the file system is read-only at that point, how would an application do any cleanup that required writing data to disk.
Applications that need cleanup should've quit from earlier signals anyhow.
Quote:
This just seems like it should be such a common need.. I am quite befuddled at it not being simpler!
It's supposed to work the way you think; I'm sure there's something obvious we're missing. I'd make a few small changes to your source:

Code:
#include <stdio.h> // for File I/O
#include <signal.h> // for signals
#include <unistd.h> // for sleep()

void handler(int sig)
{
        /* Just print to stderr and redirect 2>> test.txt in the shell */
    fprintf(stderr, "got %d\n", signal);

    signal(sig, handler); // let signal be caught again
}

int main()
{
    signal(SIGTERM,handler);
    signal(SIGINT,handler);
    signal(SIGQUIT, handler); // Maybe we're getting QUIT first?
    signal(SIGHUP, handler); // If the terminal closes, we might get this
    signal(SIGPIPE, handler); // Don't know why we'd get this, but check anyway
    while(1) // loop forever with most signals trapped, impolitely waiting for a kill -9 ;)
        sleep(30);
}


Last edited by Corona688; 02-09-2010 at 06:58 PM.. Reason: add sighup, sigpipe
 

10 More Discussions You Might Find Interesting

1. Red Hat

change the shutdown sequence in red hat linux

Hi, I use red hat linux kernel 2.6 I want to add the application shutdown in shutdown sequence . I add the K script in /etc/rc.d/ all sub directory for all running level . But the auto shutdown application is not appear when I type "shutdown -r now" .. There is no indication the application... (5 Replies)
Discussion started by: chuikingman
5 Replies

2. 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

3. AIX

stop application befor shutdown

Stop the application before shutdown the server .. I have application need to be started with the system and also need to be stop before shutdown the system This is the path of the application: /usr/appstart /usr/appstop to start the application with the startup of the... (2 Replies)
Discussion started by: Mr.AIX
2 Replies

4. Solaris

Need help "application start up & shutdown"

Hello, i have an application,say X application. When the machine is start-up,i want this application is the last module/application to run & when I shutdown the machine i want this application to be the 1st one to shutdown! i.e. last >>start-up 1st >>shutdown Any help? (1 Reply)
Discussion started by: ahmedamer12
1 Replies

5. UNIX and Linux Applications

Timer application in linux

Hello everyone, It is good to be here. I am a newbie to Linux.Can anyone help me in designing a timer application. The timer has to start.And after certain time interval the program should call a function continuously.It should not be in sleep mode.During the course of that time interval the... (0 Replies)
Discussion started by: Harry443
0 Replies

6. OS X (Apple)

Adobe application cleanup

I am trying to come up with a universal way of cleaning up after CS5 (and 5.5) installs. The history is this: adobe has a deployment tool called AAMEE that lets you re-package items and deploy them. Unfortunately it's very messy and leaves Application folders (and pieces of the apps) that do not... (1 Reply)
Discussion started by: kleinboy
1 Replies

7. UNIX for Dummies Questions & Answers

How to shutdown Linux box with user confirmation?

Hi Guru's Am looking for linux reboot command which get executed after user confirmation .Can someone please help me with this.:confused::confused::confused: (6 Replies)
Discussion started by: kapil514
6 Replies

8. Shell Programming and Scripting

Shell to cleanup Linux logs

Hi,Looking for any generic shell scripts to cleanup systemlogs. Thanks (2 Replies)
Discussion started by: tommy812
2 Replies

9. UNIX for Advanced & Expert Users

Application Script didn't run during AIX shutdown using RC directories

Hi, I am trying to bring down the application gracefully before bringing down AIX OS/LPAR using RC directories. Issue: Application script is not working properly during/before AIX OS/LPAR shutdown. looks like "rc.d" directories doesn't recognize Kill script. But Startup script (using... (0 Replies)
Discussion started by: System Admin 77
0 Replies

10. UNIX for Beginners Questions & Answers

Linux SuSE SLES 8 error..unable to issue shutdown command

the only way we can power off is if we actually press power button on server. Running on HP DL-G4. from root, when we issue command it just returns to root prompt. (1 Reply)
Discussion started by: amexboy
1 Replies
sigset(3C)																sigset(3C)

NAME
sigset(), sighold(), sigrelse(), sigignore() - signal management SYNOPSIS
DESCRIPTION
The system defines a set of signals that can be delivered to a process. The set of signals is defined in signal(5), along with the meaning and side effects of each signal. An alternate mechanism for handling these signals is defined here. The facilities described here should not be used in conjunction with the other facilities described under signal(2) and sigspace(2). allows the calling process to choose one of four ways to handle the receipt of a specific signal. sig specifies the signal and func speci- fies the action handler. sig can be any one of the signals described under signal(5) except or func is assigned one of four values: or a function address. The actions prescribed by and are described under signal(5). The action pre- scribed by and function address are described below: Hold signal. The signal sig is held upon receipt. Any pending signal of this signal type remains held. Only one signal of each type is held. Note: the signals and cannot be held. function address Catch signal. func must be a pointer to a function, the signal-catching handler, that is called when signal sig occurs. specifies that the process calls this function upon receipt of signal sig. Any pending signal of this type is released. This handler address is retained across calls to the other signal management functions listed here. Upon receipt of signal sig, the receiving process executes the signal-catching function pointed to by func as described under signal(5) with the follow- ing differences: Before calling the signal-catching handler, the defined action of sig is set to During a normal return from the signal- catching handler, the defined action is restored to func and any held signal of this type is released. If a non-local goto (longjmp(3C)) is taken, must be called to restore the defined action to func and release any held signal of this type. holds the signal sig. restores the defined action of sig to that specified previously by and are used to establish critical regions of code. is analogous to raising the priority level and deferring or holding a signal until the priority is lowered by sets the action for signal sig to (see signal(5)). RETURN VALUE
Upon successful completion, returns the previous value of the defined action for the specified signal sig. Otherwise, a value of is returned and is set to indicate the error. is defined in For the other functions, a 0 value indicates that the call succeeded. A -1 return value indicates an error occurred and is set to indicate the reason. ERRORS
fails and the defined action for sig is not changed if any of the following occur: The func argument points to memory that is not a valid part of the process address space. Reliable detection of this error is implementation dependent. and and fail and the defined action for sig is not changed if any of the following occur: sig is not a valid signal number. An attempt is made to ignore, hold, or supply a handler for a signal that cannot be ignored, held, or caught; see signal(5). WARNINGS
These signal facilities should not be used in conjunction with signal(2) and sigspace(2). SEE ALSO
kill(1), kill(2), pause(2), signal(2), sigspace(2), wait(2), abort(3C), setjmp(3C), sigpause(3C), signal(5). STANDARDS CONFORMANCE
sigset(3C)
All times are GMT -4. The time now is 05:04 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy