def check_fmd_service(): try: output = subprocess.check_output('svcs -H -o state fmd',shell=True) state = output.decode('UTF-8').strip() if state == 'online': return True elif state == 'disabled': subprocess.call('svcadm enable fmd',shell=True) log_debug('enable fmd svc.') elif state == 'maintenance': subprocess.call('svcadm clear fmd',shell=True) log_debug('clear fmd svc.') '''wait''' for i in range(5): output = subprocess.check_output('svcs -H -o state fmd',shell=True) state = output.decode('UTF-8').strip() if state == 'online': return True time.sleep(1) except: pass log_debug('check and online fmd svc failed.') return False