Salesforce

Considerations when using the UNIX kill -9 command

« Go Back

Information

 
TitleConsiderations when using the UNIX kill -9 command
URL NameP20737
Article Number000136528
EnvironmentProduct: Progress
Version: 9.x
Product: OpenEdge
Version: 10.x, 11.x, 12.x
OS: UNIX, Linux
Question/Problem Description
How to use the UNIX kill -9 command appropriately
Guidelines to use of UNIX kill -9 command to stop a process
How to use kill -9 command to release shared memory
When to use the kill -9 command to cancel processes
Steps to Reproduce
Clarifying Information
Error Message
Defect Number
Enhancement Number
Cause
Resolution
Using kill -9 to terminate shared memory processes

It is never a good idea to "throw the big red switch".  Most systems with buffered filesystems can get into real trouble. UNIX does not allow any program to detect a SIGKILL, which means the database watchdog processes cannot detect what is happening when processes start to disappear at the system level with kill -9. In most cases it is better to perform a clean reboot of the system than to start randomly killing processes.

Depending on which process is killed off and what the process is doing, that session may very well have been holding a latch. PROGRESS will eventually detect this abnormality and trigger an Abnormal database shutdown the database. In other instances when enough processes are serially killed off, remaining processes can effectively "hang" as they could be waiting for some resource that will then never be released by a lost process.

If the database Broker process(_mprosrv) is killed with a SIGKILL( Kill -9), there will not be time for entries to be created in the database log file. This means that the .lg will not show any information about a shutdown or crash; activity in the database log will cease.   

Using kill -9 on Unix systems: 
$   kill -9 <pid> 

Before sending the signal:
  • Ensure the PID exists with: ps -ef | grep <pid> for example.
  • Do not pass 1 as the PID, -1 is the “init” process.
  • Ensure the PID has no children, this is often overlooked.
SIGKILL truly kills the process and requires the release of held semaphores and shared memory segments for both the user sessions and the broker process. Refer to Article: If forcing the database to shutdown with: proshut -byF does not work and you are not comfortable isolating and killing remaining processes then finally cleaning up shared memory before re-starting, then reboot the system.

For further information refer to Article  Guidelines on the use of UNIX kill command to stop a process 
Workaround
Notes
Keyword Phrase
Last Modified Date11/20/2020 7:38 AM

Powered by