Revision 65d1b8de
Added by Alex Fisher over 7 years ago
extra/register-service.rb | ||
---|---|---|
cmd = "#{ruby} -C #{working_dir} \"#{executable}\""
|
||
puts "Installing #{cmd} as a service"
|
||
|
||
default_user = ENV["USERNAME"]
|
||
default_user = ENV["USERDOMAIN"] + '\\' + default_user if ENV["USERDOMAIN"]
|
||
default_user = ENV["USERNAME"]
|
||
default_user = ENV["USERDOMAIN"] + '\\' + default_user if ENV["USERDOMAIN"]
|
||
default_service_name = 'smart proxy'
|
||
|
||
puts "This service must run as a user with permission to execute the netsh dhcp script"
|
||
puts 'The acount can be local or a domain account. If it is a domain account then use the domain\account syntax'
|
||
user = ask("Run this service as this user? ") {|u| u.default = default_user}
|
||
pass1 = ask("Enter the user's password ") {|p| p.echo = "x"}
|
||
service_name = ask("Enter the name of the service ") {|s| s.default = default_service_name}
|
||
user = ask("Run this service as this user? ") {|u| u.default = default_user}
|
||
pass1 = ask("Enter the user's password ") {|p| p.echo = "x"}
|
||
|
||
description = 'Foreman Smart Proxy'
|
||
description += " (#{service_name})" unless service_name == default_service_name
|
||
|
||
begin
|
||
Service.stop("smart proxy") rescue nil
|
||
Service.delete("smart proxy") rescue nil
|
||
Service.stop(service_name) rescue nil
|
||
Service.delete(service_name) rescue nil
|
||
Service.create(
|
||
:service_name =>'smart proxy',
|
||
:service_name => service_name,
|
||
:host => nil,
|
||
:service_type => Service::WIN32_OWN_PROCESS,
|
||
:description => 'Foreman Smart Proxy',
|
||
:description => description,
|
||
:start_type => Service::AUTO_START,
|
||
:error_control => Service::ERROR_NORMAL,
|
||
:binary_path_name => cmd,
|
||
:service_start_name => user,
|
||
:password => pass1,
|
||
:display_name => 'Foreman Smart Proxy'
|
||
)
|
||
Service.start('smart proxy')
|
||
:display_name => description
|
||
)
|
||
Service.start(service_name)
|
||
rescue => e
|
||
puts "There was a problem registering the service: " + e.message
|
||
puts 'Check log file for details'
|
||
end
|
||
end
|
||
|
Also available in: Unified diff
fixes #17125 - Prompt for Windows service name
Useful if you need to install multiple proxy services on the same
Windows server.