def get_service_action(service, action):
if service in config.sections():
sdbus = systemdBus(True) if config.get('DEFAULT', 'scope', fallback='system') == 'user' else systemdBus()
unit = config.get(service, 'unit')
if action == 'start':
return {action: 'OK'} if sdbus.start_unit(unit) else {action: 'Fail'}
elif action == 'stop':
return {action: 'OK'} if sdbus.stop_unit(unit) else {action: 'Fail'}
elif action == 'restart':
return {action: 'OK'} if sdbus.restart_unit(unit) else {action: 'Fail'}
elif action == 'reload':
return {action: 'OK'} if sdbus.reload_unit(unit) else {action: 'Fail'}
elif action == 'reloadorrestart':
return {action: 'OK'} if sdbus.reload_or_restart_unit(unit) else {action: 'Fail'}
elif action == 'status':
if sdbus.get_unit_load_state(unit) != 'not-found':
return {action: str(sdbus.get_unit_active_state(unit))}
else:
return {action: 'not-found'}
elif action == 'journal':
return get_service_journal(service, 100)
else:
response.status = 400
return {'msg': 'Sorry, but cannot perform \'{}\' action.'.format(action)}
else:
response.status = 400
return {'msg': 'Sorry, but \'{}\' is not defined in config.'.format(service)}
评论列表
文章目录