Sha256: 0e60e071f89384c8c177758a1120e82c459aafc6208aa7314215b9e1771788da

Contents?: true

Size: 1.29 KB

Versions: 5

Compression:

Stored size: 1.29 KB

Contents

require File.expand_path(File.dirname(__FILE__)) + "/../aptpackage/aptpackage.rb"

class Sfp::Module::Service < Sfp::Module::AptPackage
	def update_state
		to_model
		if @model.is_a?(Hash)
			@state['installed'] = installed?
			@state['version'] = version?
			@state['running'] = Sfp::Module::Service.running?(@model['service_name'])
		end
	end

	##############################
	#
	# Action methods (see TarPackage.sfp)
	#
	##############################

	def start(p={})
		service = @model['service_name'].to_s.strip
		return false if service.length <= 0
		return true if Sfp::Module::Service.running?(service)
		system("sudo service #{service} start")
		sleep 1
		return Sfp::Module::Service.running?(service)
	end

	def stop(p={})
		service = @model['service_name'].to_s.strip
		return false if service.length <= 0
		return true if not Sfp::Module::Service.running?(service)
		system("sudo service #{service} stop")
		sleep 1
		return !Sfp::Module::Service.running?(service)
	end


	##############################
	#
	# Helper methods
	#
	##############################

	def self.running?(service)
		service = service.to_s
		return false if service.length <= 0
		data = `service #{service} status 2>/dev/null`.to_s.downcase
		return !!(data =~ /is running/ or data =~ /start\/running/ or data =~ /uptime/)
	end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
nuri-0.5.5 modules/service/service.rb
nuri-0.5.4 modules/service/service.rb
nuri-0.5.3 modules/service/service.rb
nuri-0.5.2 modules/service/service.rb
nuri-0.5.1 modules/service/service.rb