summaryrefslogtreecommitdiff
path: root/core/launcher
authormickeyl <mickeyl>2004-11-12 13:51:35 (UTC)
committer mickeyl <mickeyl>2004-11-12 13:51:35 (UTC)
commitde558d6f0bc31f58ffaa894a0236f0d9cb5d73e0 (patch) (side-by-side diff)
tree55f7c2ec8c1e93983d41c962e557f3651db39b03 /core/launcher
parentee67d61c20b6840f3fb353e314d16a90c0438e7c (diff)
downloadopie-de558d6f0bc31f58ffaa894a0236f0d9cb5d73e0.zip
opie-de558d6f0bc31f58ffaa894a0236f0d9cb5d73e0.tar.gz
opie-de558d6f0bc31f58ffaa894a0236f0d9cb5d73e0.tar.bz2
handle more signals and don't kill the process @ end
Diffstat (limited to 'core/launcher') (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/main.cpp92
1 files changed, 37 insertions, 55 deletions
diff --git a/core/launcher/main.cpp b/core/launcher/main.cpp
index b119399..aa0dfdf 100644
--- a/core/launcher/main.cpp
+++ b/core/launcher/main.cpp
@@ -68,3 +68,3 @@ static void cleanup()
for ( it = stale.begin(); it != stale.end(); ++it ) {
- dir.remove( *it );
+ dir.remove( *it );
}
@@ -89,3 +89,3 @@ void initEnvironment()
if (tz.isNull() || tz.isEmpty())
- tz = "America/New_York";
+ tz = "America/New_York";
@@ -97,3 +97,3 @@ void initEnvironment()
if( lang.isNull() || lang.isEmpty())
- lang = "en_US";
+ lang = "en_US";
@@ -127,3 +127,3 @@ static void initKeyboard()
if ( ard > 0 && arp > 0 )
- qwsSetKeyboardAutoRepeat( ard, arp );
+ qwsSetKeyboardAutoRepeat( ard, arp );
@@ -143,5 +143,5 @@ static bool firstUse()
{
- Config config( "qpe" );
- config.setGroup( "Startup" );
- needFirstUse |= config.readBoolEntry( "FirstUse", TRUE );
+ Config config( "qpe" );
+ config.setGroup( "Startup" );
+ needFirstUse |= config.readBoolEntry( "FirstUse", TRUE );
}
@@ -149,3 +149,3 @@ static bool firstUse()
if ( !needFirstUse )
- return FALSE;
+ return FALSE;
@@ -177,4 +177,4 @@ int initApplication( int argc, char ** argv )
if ( firstUse() ) {
- a.restart();
- return 0;
+ a.restart();
+ return 0;
}
@@ -185,3 +185,3 @@ int initApplication( int argc, char ** argv )
QCopEnvelope e("QPE/System", "setBacklight(int)" );
- e << -3; // Forced on
+ e << -3; // Forced on
}
@@ -225,8 +225,8 @@ void create_pidfile ( )
{
- FILE *f;
+ FILE *f;
- if (( f = ::fopen ( pidfile_path, "w" ))) {
- ::fprintf ( f, "%d", getpid ( ));
- ::fclose ( f );
- }
+ if (( f = ::fopen ( pidfile_path, "w" ))) {
+ ::fprintf ( f, "%d", getpid ( ));
+ ::fclose ( f );
+ }
}
@@ -235,3 +235,3 @@ void remove_pidfile ( )
{
- ::unlink ( pidfile_path );
+ ::unlink ( pidfile_path );
}
@@ -240,20 +240,24 @@ void handle_sigterm ( int /* sig */ )
{
- if ( qApp )
- qApp-> quit ( );
+ ::signal( SIGCHLD, SIG_IGN );
+ ::signal( SIGSEGV, SIG_IGN );
+ ::signal( SIGBUS, SIG_IGN );
+ ::signal( SIGILL, SIG_IGN );
+ ::signal( SIGTERM, SIG_IGN );
+ ::signal ( SIGINT, SIG_IGN );
+ if ( qApp ) qApp->quit();
}
-#ifndef Q_OS_WIN32
int main( int argc, char ** argv )
{
-
- ::signal ( SIGCHLD, SIG_IGN );
-
- ::signal ( SIGTERM, handle_sigterm );
+ ::signal( SIGCHLD, SIG_IGN );
+ ::signal( SIGSEGV, handle_sigterm );
+ ::signal( SIGBUS, handle_sigterm );
+ ::signal( SIGILL, handle_sigterm );
+ ::signal( SIGTERM, handle_sigterm );
::signal ( SIGINT, handle_sigterm );
+ ::setsid();
+ ::setpgid( 0, 0 );
- ::setsid ( );
- ::setpgid ( 0, 0 );
-
- ::atexit ( remove_pidfile );
- create_pidfile ( );
+ ::atexit( remove_pidfile );
+ create_pidfile();
@@ -262,25 +266,6 @@ int main( int argc, char ** argv )
// Have we been asked to restart?
- if ( ServerApplication::doRestart ) {
- for ( int fd = 3; fd < 100; fd++ )
- close( fd );
-
- execl( (QPEApplication::qpeDir()+"bin/qpe").latin1(), "qpe", 0 );
- }
-
- // Kill them. Kill them all.
- ::kill ( 0, SIGTERM );
- ::sleep ( 1 );
- ::kill ( 0, SIGKILL );
-
- return retVal;
-}
-#else
-
-int main( int argc, char ** argv )
-{
- int retVal = initApplication( argc, argv );
-
- if ( DesktopApplication::doRestart ) {
- odebug << "Trying to restart" << oendl;
- execl( (QPEApplication::qpeDir()+"bin\\qpe").latin1(), "qpe", 0 );
+ if ( ServerApplication::doRestart )
+ {
+ for ( int fd = 3; fd < 100; fd++ ) close( fd );
+ execl( (QPEApplication::qpeDir()+"bin/qpe").latin1(), "qpe", 0 );
}
@@ -289,4 +274 @@ int main( int argc, char ** argv )
}
-
-#endif
-