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
pthread_cleanup_push(3C)												  pthread_cleanup_push(3C)

NAME
pthread_cleanup_push - push a thread cancellation cleanup handler SYNOPSIS
cc -mt [ flag... ] file... -lpthread [ library... ] #include <pthread.h> void pthread_cleanup_push(void (*handler, void *),void *arg); The pthread_cleanup_push() function pushes the specified cancellation cleanup handler routine, handler, onto the cancellation cleanup stack of the calling thread. When a thread exits or is canceled and its cancellation cleanup stack is not empty, the cleanup handlers are invoked with the argument arg in last in, first out (LIFO) order from the cancellation cleanup stack. The pthread_cleanup_push() and pthread_cleanup_pop(3C) functions can be implemented as macros. The application must ensure that they appear as statements, and in pairs within the same lexical scope (that is, the pthread_cleanup_push() macro can be thought to expand to a token list whose first token is '{' with pthread_cleanup_pop() expanding to a token list whose last token is the corresponding '}'). The effect of the use of return, break, continue, and goto to prematurely leave a code block described by a pair of pthread_cleanup_push() and pthread_cleanup_pop() function calls is undefined. Using longjmp() or siglongjmp() to jump into or out of a push/pop pair can cause either the matching push or the matching pop statement not getting executed. The pthread_cleanup_push() function returns no value. No errors are defined. The pthread_cleanup_push() function will not return an error code of EINTR. See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Standard | +-----------------------------+-----------------------------+ |MT-Level |MT-Safe | +-----------------------------+-----------------------------+ longjmp(3C), pthread_cancel(3C), pthread_cleanup_pop(3C), pthread_exit(3C), pthread_join(3C), pthread_setcancelstate(3C), pthread_set- canceltype(3C), pthread_testcancel(3C), attributes(5), cancellation(5), condition(5), standards(5) See cancellation(5) for a discussion of cancellation concepts. 4 Oct 2005 pthread_cleanup_push(3C)
All times are GMT -4. The time now is 07:50 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy