100:Guide: Using and Understanding OpenIM Utility Functions
This document provides an overview of the four utility functions designed for managing processes and services. These functions can check the status of services based on ports and process names, as well as stop services based on the same criteria.
Table of Contents
- 1. Checking the Status of Services by Ports
- 2. Checking the Status of Services by Process Names
- 3. Stopping Services by Ports
- 4. Stopping Services by Process Names
1. Checking the Status of Services by Ports
openim::util::check_ports
Function: This function checks the status of services running on specified ports.
Usage:
openim::util::check_ports <port1> <port2> ...
Design:
- The function iterates through each provided port.
- It uses the
lsof
command to identify if there is a service running on the specified port. - If a service is running, it logs the command, PID, and start time of the service.
- If a service is not running, it logs that the port is not started.
- If any service is not running, the function returns a status of 1.
Example:
openim::util::check_ports 8080 8081 8082
2. Checking the Status of Services by Process Names
openim::util::check_process_names
Function: This function checks the status of services based on their process names.
Usage:
openim::util::check_process_names <process_name1> <process_name2> ...
Design:
- The function uses
pgrep
to find process IDs associated with the given process names. - If processes are found, it logs the command, PID, associated port, and start time.
- If no processes are found for a name, it logs that the process is not started.
- If any process is not running, the function returns a status of 1.
Example:
openim::util::check_process_names nginx mysql redis
3. Stopping Services by Ports
openim::util::stop_services_on_ports
Function: This function attempts to stop services running on the specified ports.
Usage:
bashCopy code
openim::util::stop_services_on_ports <port1> <port2> ...
Design:
- The function uses the
lsof
command to identify services running on the specified ports. - If a service is running on a port, it tries to terminate the associated process using the
kill
command. - It logs successful terminations and any failures.
- If any service couldn't be stopped, the function returns a status of 1.
Example:
openim::util::stop_services_on_ports 8080 8081 8082
4. Stopping Services by Process Names
openim::util::stop_services_with_name
Function: This function attempts to stop services based on their process names.
Usage:
openim::util::stop_services_with_name <process_name1> <process_name2> ...
Design:
- The function uses
pgrep
to identify processes associated with the specified names. - If processes are found, it tries to terminate them using the
kill
command. - It logs successful terminations and any failures.
- If any service couldn't be stopped, the function returns a status of 1.
Example:
openim::util::stop_services_with_name nginx apache