Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /bin/sh
- counter=0
- zabbix_counter=$(ps -ef | grep zabbix_agentd | grep -v grep | wc -l)
- start(){
- echo "-------------------------------------------------------------------"
- echo " LAUNCHING ZABBIX AGENT"
- if [ $zabbix_counter -gt 0 ]; then
- echo " * Zabbix agent was previously running"
- echo " * Number of Zabbix agentd instances= $zabbix_counter"
- echo "-----------------------------------------------------------------"
- fi
- # Checking if the user is able to start the agent.... if the user is not able to, script performs su to
- # the user zabbix and starts the agent
- if [ $(whoami) != "zabbix" ];then
- sudo -u zabbix zabbix_agentd
- else
- # Script is acting as the zabbix user, so it can start the agent.
- zabbix_agentd
- fi
- sleep 10
- zabbix_counter=$(ps -ef | grep zabbix_agentd | grep -v grep | wc -l)
- if [ $zabbix_counter -gt 0 ]; then
- echo " * Zabbix agent succesfully started"
- echo " * Number of zabbix agentd instances= $zabbix_counter"
- echo "-------------------------------------------------------------------"
- else
- echo " * Zabbix agent couldn't be started, check Zabbix logs"
- echo "-------------------------------------------------------------------"
- fi
- }
- stop(){
- # Checking if the user is able to stop the agent.... if the user is not able to, script performs su to
- # the user zabbix and kills the agent. Also script tries to kill zabbix-agent processes 5 times using a counter, if at
- # the fith try the agent is still there, script outputs a message to the console.
- echo "-------------------------------------------------------------------"
- echo " STOPPING ZABBIX AGENT"
- if [ $zabbix_counter -eq 0 ]; then
- echo " * Zabbix agent was not running on this machine"
- echo "-------------------------------------------------------------------"
- fi
- while [ $zabbix_counter -gt 0 ] && [ $counter -lt 5 ] ; do
- let counter=counter+1
- echo " * Number of Attempts (Max 5)=$counter"
- echo " * Stopping zabbix.."
- echo " * Number of zabbix agentd instances= $zabbix_counter"
- if [ $(whoami) != "zabbix" ];then
- sudo -u zabbix killall zabbix_agentd > /dev/null &
- else
- killall zabbix_agentd > /dev/null &
- fi
- sleep 10
- # Script has a 10 second delay to avoid attempting to kill a process that is still shutting down. If the script
- # can't kill the processes, an error will appear.
- # After 10 seconds script checks again the number of zabbix_agentd processes running,
- # if it's 0, script will exit the loop and continue on
- zabbix_counter=$(ps -ef | grep zabbix_agentd | grep -v grep | wc -l)
- done
- if [ $zabbix_counter -gt 0 ]; then
- echo " * Zabbix agent couldn't be stopped, check Zabbix logs"
- echo "-------------------------------------------------------------------"
- fi
- if [ $zabbix_counter -eq 0 ]; then
- echo " * Zabbix agent successfully stopped"
- echo "-------------------------------------------------------------------"
- fi
- }
- restart(){
- stop
- # Gives system some time to stop processes before script restarts service
- sleep 10
- # Now script can start the agent again
- start
- }
- case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- restart)
- restart
- ;;
- *)
- echo "Usage: zabbix {start|stop|restart}"
- exit 1
- esac
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement