Software rejuvenation techniques which improve reliability of a software system by stopping execution of the system and restarting the execution with "clean" state. The rejuvenation techniques are generally available to applications executing in a computer system. The techniques are implemented using a daemon process which observes applications registered with it and restarts them if they crash or hang and a process like the cron process of the UNIX operating system. The daemon process responds to a rejuvenation specification which indicates that an application which is registerd with it be rejuvenated by making a script for the cron process which specifies that the application's process be killed. When the cron process executes the script and kills the application, the daemon process observes that the application is dead and restarts it. In restarting the application, the daemon process may use state previously saved by the application for that purpose. The specification further contains parameters for the time at which the rejuvenation is to be performed (or the period between rejuvenations), for the manner in which the application is to be rejuvenated, and for operations to be performed when the application is killed.