Skip to content

Commit

Permalink
Chef 17: Remove windows service manager capabilities
Browse files Browse the repository at this point in the history
This is something we've recommended against using for many years now. Windows users should instead run Chef Infra Client using a Scheduled Task which is far more reliable and has the added benefit of requiring zero CPU or memory while not running.

Signed-off-by: Tim Smith <[email protected]>
  • Loading branch information
tas50 committed Feb 4, 2021
1 parent b14a3e7 commit 7677a88
Show file tree
Hide file tree
Showing 12 changed files with 6 additions and 1,136 deletions.
37 changes: 1 addition & 36 deletions chef-bin/bin/chef-service-manager
Original file line number Diff line number Diff line change
@@ -1,38 +1,3 @@
#!/usr/bin/env ruby
#
# ./chef-service-manager - Control chef-service on Windows platforms.
#
# Author:: Serdar Sutay ([email protected])
# Copyright:: Copyright 2013-2018, Chef Software Inc.
# License:: Apache License, Version 2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

$:.unshift(File.join(__dir__, "..", "lib"))
require "chef"
require "chef/application/windows_service_manager"
require "chef-utils/dist" unless defined?(ChefUtils::Dist)

if Chef::Platform.windows?
chef_client_service = {
service_name: ChefUtils::Dist::Infra::CLIENT,
service_display_name: "#{ChefUtils::Dist::Infra::PRODUCT} Service",
service_description: "Runs #{ChefUtils::Dist::Infra::PRODUCT} on regular, configurable intervals.",
service_file_path: File.expand_path("../chef-windows-service", $PROGRAM_NAME),
delayed_start: true,
dependencies: ["Winmgmt"],
}
Chef::Application::WindowsServiceManager.new(chef_client_service).run
else
puts "chef-service-manager is only available on Windows platforms."
end
puts "As of Chef Infra Client 17 the chef-service-manager is no longer available. Please run Chef Infra Client as a scheduled task instead for more reliable operation with lower memory and CPU overhead."
33 changes: 1 addition & 32 deletions chef-bin/bin/chef-windows-service
Original file line number Diff line number Diff line change
@@ -1,34 +1,3 @@
#!/usr/bin/env ruby
#
# Author:: Jay Mundrawala (<[email protected]>)
#
# Copyright:: 2014-2018, Chef Software, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

# Note:
# The file is used by appbundler to generate a ruby file that
# we can execute using the correct gems. The batch file we
# generate will call that file, and will be registered as
# a windows service.

$:.unshift(File.join(__dir__, "..", "lib"))
require "chef"
require "chef/application/windows_service"

if Chef::Platform.windows?
Chef::Application::WindowsService.mainloop
else
puts "chef-windows-service is only available on Windows platforms."
end
puts "As of Chef Infra Client 17 the chef-windows-service is no longer available. Please run Chef Infra Client as a scheduled task instead for more reliable operation with lower memory and CPU overhead."
Loading

0 comments on commit 7677a88

Please sign in to comment.