I'm no ruby expert... rather I'm a complete newbie, but I found that
commenting out the places
in the launchd provider (in stop and start) where it decides whether
to use the -w switch (so it always
includes that switch) makes the problem (well, MY problem) go away.

I haven't tested this on Leopard (10.5) so I'm not sure if this is
something new to Snow Leopard. I'll try
testing this on 10.5 later. I guess I should file a bug report after
that.

Here's the diff:

--- launchd.rb
+++ (clipboard)
@@ -130,10 +130,10 @@
         did_enable_job = false
         cmds = []
         cmds << :launchctl << :load
-        if self.enabled? == :false  # launchctl won't load disabled
jobs
-            cmds << "-w"
-            did_enable_job = true
-        end
+        #if self.enabled? == :false  # launchctl won't load disabled
jobs
+        cmds << "-w"
+        did_enable_job = true
+        #end
         cmds << job_path
         begin
             execute(cmds)
@@ -152,10 +152,10 @@
         did_disable_job = false
         cmds = []
         cmds << :launchctl << :unload
-        if self.enabled? == :true # keepalive jobs can't be stopped
without disabling
-            cmds << "-w"
-            did_disable_job = true
-        end
+        #if self.enabled? == :true # keepalive jobs can't be stopped
without disabling
+        cmds << "-w"
+        did_disable_job = true
+        #end
         cmds << job_path
         begin
             execute(cmds)


On 30 Aug, 16:39, grandpa <john.axel.eriks...@gmail.com> wrote:
> Doing another run reveals a bit more... perhaps I missed pasting that
> part previously.
> Here we can see what puppet executes. If I do the same from a terminal
> I get "nothing found to load".
>
> launchctl unload -w /System/Library/LaunchDaemons/ssh.plist
> then
> launchctl load /System/Library/LaunchDaemons/ssh.plist
>
> to get this to actually load from a terminal the second command needs
> to include the -w switch just like unload does, like so:
> launchctl load -w /System/Library/LaunchDaemons/ssh.plist
>
> Dont understand why puppet doesn't... below is the debug/trace/verbose
> output showing these commands.
>
> debug: Puppet::Type::Service::ProviderLaunchd: Executing '/bin/
> launchctl list'
> debug: Service[com.openssh.sshd](provider=launchd): Executing
> 'launchctl unload -w /System/Library/LaunchDaemons/ssh.plist'
> debug: Service[com.openssh.sshd](provider=launchd): Executing
> 'launchctl load /System/Library/LaunchDaemons/ssh.plist'
> err: //macssh/Service[com.openssh.sshd]: Failed to call refresh on
> Service[com.openssh.sshd]: Unable to start service: com.openssh.sshd
> at path: /System/Library/LaunchDaemons/ssh.plist
> /Library/Ruby/Site/1.8/puppet/provider/service/launchd.rb:141:in
> `start'
> /Library/Ruby/Site/1.8/puppet/provider/service/base.rb:50:in `restart'
> /Library/Ruby/Site/1.8/puppet/type/service.rb:192:in `refresh'
> /Library/Ruby/Site/1.8/puppet/transaction.rb:672:in `send'
> /Library/Ruby/Site/1.8/puppet/transaction.rb:672:in `trigger'
> /Library/Ruby/Site/1.8/puppet/transaction.rb:645:in `each'
> /Library/Ruby/Site/1.8/puppet/transaction.rb:645:in `trigger'
> /Library/Ruby/Site/1.8/puppet/transaction.rb:209:in `eval_resource'
> /Library/Ruby/Site/1.8/puppet/transaction.rb:294:in `evaluate'
> /Library/Ruby/Site/1.8/puppet/util.rb:425:in `thinmark'
> /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
> gems/1.8/gems/activesupport-2.2.2/lib/active_support/core_ext/
> benchmark.rb:8:in `realtime'
> /Library/Ruby/Site/1.8/puppet/util.rb:424:in `thinmark'
> /Library/Ruby/Site/1.8/puppet/transaction.rb:293:in `evaluate'
> /Library/Ruby/Site/1.8/puppet/transaction.rb:287:in `collect'
> /Library/Ruby/Site/1.8/puppet/transaction.rb:287:in `evaluate'
> /Library/Ruby/Site/1.8/puppet/resource/catalog.rb:139:in `apply'
> /Library/Ruby/Site/1.8/puppet/configurer.rb:142:in `run'
> /Library/Ruby/Site/1.8/puppet/util.rb:180:in `benchmark'
> /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
> gems/1.8/gems/activesupport-2.2.2/lib/active_support/core_ext/
> benchmark.rb:8:in `realtime'
> /Library/Ruby/Site/1.8/puppet/util.rb:179:in `benchmark'
> /Library/Ruby/Site/1.8/puppet/configurer.rb:141:in `run'
> /Library/Ruby/Site/1.8/puppet/agent.rb:53:in `run'
> /Library/Ruby/Site/1.8/puppet/agent/locker.rb:21:in `lock'
> /Library/Ruby/Site/1.8/puppet/agent.rb:53:in `run'
> /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
> 1.8/sync.rb:229:in `synchronize'
> /Library/Ruby/Site/1.8/puppet/agent.rb:53:in `run'
> /Library/Ruby/Site/1.8/puppet/agent.rb:130:in `with_client'
> /Library/Ruby/Site/1.8/puppet/agent.rb:51:in `run'
> /Library/Ruby/Site/1.8/puppet/application/puppetd.rb:103:in `onetime'
> /Library/Ruby/Site/1.8/puppet/application.rb:226:in `send'
> /Library/Ruby/Site/1.8/puppet/application.rb:226:in `run_command'
> /Library/Ruby/Site/1.8/puppet/application.rb:217:in `run'
> /Library/Ruby/Site/1.8/puppet/application.rb:306:in `exit_on_fail'
> /Library/Ruby/Site/1.8/puppet/application.rb:217:in `run'
> /usr/sbin/puppetd:159
>
> On 30 Aug, 15:51, grandpa <john.axel.eriks...@gmail.com> wrote:
>
>
>
> > The actual problem still seems to be with the provider. Doing a proper
> > trace/debug/verbose I get this output:
>
> > debug: Service[com.openssh.sshd](provider=launchd): Executing
> > 'launchctl load /System/Library/LaunchDaemons/ssh.plist'
> > /Library/Ruby/Site/1.8/puppet/provider/service/launchd.rb:141:in
> > `start'
> > /Library/Ruby/Site/1.8/puppet/type/service.rb:61:in `set_running'
> > /Library/Ruby/Site/1.8/puppet/property.rb:109:in `send'
> > /Library/Ruby/Site/1.8/puppet/property.rb:109:in `call_valuemethod'
> > /Library/Ruby/Site/1.8/puppet/property.rb:297:in `set'
> > /Library/Ruby/Site/1.8/puppet/property.rb:367:in `sync'
> > /Library/Ruby/Site/1.8/puppet/type/service.rb:72:in `sync'
> > /Library/Ruby/Site/1.8/puppet/transaction/change.rb:54:in `go'
> > /Library/Ruby/Site/1.8/puppet/transaction/change.rb:72:in `forward'
> > /Library/Ruby/Site/1.8/puppet/transaction.rb:118:in `apply_changes'
> > /Library/Ruby/Site/1.8/puppet/transaction.rb:111:in `collect'
> > /Library/Ruby/Site/1.8/puppet/transaction.rb:111:in `apply_changes'
> > /Library/Ruby/Site/1.8/puppet/transaction.rb:83:in `apply'
> > /Library/Ruby/Site/1.8/puppet/transaction.rb:249:in
> > `eval_children_and_apply_resource'
> > /Library/Ruby/Site/1.8/puppet/util.rb:425:in `thinmark'
> > /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
> > gems/1.8/gems/activesupport-2.2.2/lib/active_support/core_ext/
> > benchmark.rb:8:in `realtime'
> > /Library/Ruby/Site/1.8/puppet/util.rb:424:in `thinmark'
> > /Library/Ruby/Site/1.8/puppet/transaction.rb:248:in
> > `eval_children_and_apply_resource'
> > /Library/Ruby/Site/1.8/puppet/transaction.rb:205:in `eval_resource'
> > /Library/Ruby/Site/1.8/puppet/transaction.rb:294:in `evaluate'
> > /Library/Ruby/Site/1.8/puppet/util.rb:425:in `thinmark'
> > /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
> > gems/1.8/gems/activesupport-2.2.2/lib/active_support/core_ext/
> > benchmark.rb:8:in `realtime'
> > /Library/Ruby/Site/1.8/puppet/util.rb:424:in `thinmark'
> > /Library/Ruby/Site/1.8/puppet/transaction.rb:293:in `evaluate'
> > /Library/Ruby/Site/1.8/puppet/transaction.rb:287:in `collect'
> > /Library/Ruby/Site/1.8/puppet/transaction.rb:287:in `evaluate'
> > /Library/Ruby/Site/1.8/puppet/resource/catalog.rb:139:in `apply'
> > /Library/Ruby/Site/1.8/puppet/configurer.rb:142:in `run'
> > /Library/Ruby/Site/1.8/puppet/util.rb:180:in `benchmark'
> > /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
> > gems/1.8/gems/activesupport-2.2.2/lib/active_support/core_ext/
> > benchmark.rb:8:in `realtime'
> > /Library/Ruby/Site/1.8/puppet/util.rb:179:in `benchmark'
> > /Library/Ruby/Site/1.8/puppet/configurer.rb:141:in `run'
> > /Library/Ruby/Site/1.8/puppet/agent.rb:53:in `run'
> > /Library/Ruby/Site/1.8/puppet/agent/locker.rb:21:in `lock'
> > /Library/Ruby/Site/1.8/puppet/agent.rb:53:in `run'
> > /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
> > 1.8/sync.rb:229:in `synchronize'
> > /Library/Ruby/Site/1.8/puppet/agent.rb:53:in `run'
> > /Library/Ruby/Site/1.8/puppet/agent.rb:130:in `with_client'
> > /Library/Ruby/Site/1.8/puppet/agent.rb:51:in `run'
> > /Library/Ruby/Site/1.8/puppet/application/puppetd.rb:103:in `onetime'
> > /Library/Ruby/Site/1.8/puppet/application.rb:226:in `send'
> > /Library/Ruby/Site/1.8/puppet/application.rb:226:in `run_command'
> > /Library/Ruby/Site/1.8/puppet/application.rb:217:in `run'
> > /Library/Ruby/Site/1.8/puppet/application.rb:306:in `exit_on_fail'
> > /Library/Ruby/Site/1.8/puppet/application.rb:217:in `run'
> > /usr/sbin/puppetd:159
> > err: //macssh/Service[com.openssh.sshd]/ensure: change from stopped to
> > running failed: Unable to start service: com.openssh.sshd at path: /
> > System/Library/LaunchDaemons/ssh.plist
>
> > On 30 Aug, 15:46, grandpa <john.axel.eriks...@gmail.com> wrote:
>
> > > And looking through the ruby code for provider launchd I see this:
>
> > > # start the service. To get to a state of running/enabled, we need to
> > >     # conditionally enable at load, then disable by modifying the
> > > plist file
> > >     # directly.
> > >     def start
> > >         job_path, job_plist = plist_from_label(resource[:name])
> > >         did_enable_job = false
> > >         cmds = []
> > >         cmds << :launchctl << :load
> > >         if self.enabled? == :false  # launchctl won't load disabled
> > > jobs
> > >             cmds << "-w"
> > >             did_enable_job = true
> > >         end
> > >         cmds << job_path
> > >         begin
> > >             execute(cmds)
> > >         rescue Puppet::ExecutionFailure
> > >             raise Puppet::Error.new("Unable to start service: %s at
> > > path: %s" % [resource[:name], job_path])
> > >         end
> > >         # As load -w clears the Disabled flag, we need to add it in
> > > after
> > >         if did_enable_job and resource[:enable] == :false
> > >             self.disable
> > >         end
> > >     end
>
> > > So I guess the -w switch is actually used... not sure where to go from
> > > here.
>
> > > Anyone?
>
> > > /John
>
> > > On 30 Aug, 15:33, grandpa <john.axel.eriks...@gmail.com> wrote:
>
> > > > Talking to myself here ;-)... I've noticed in the man pages for
> > > > launchctl in Snow Leopard this:
>
> > > > -w       Overrides the Disabled key and sets it to false. In previous
> > > > versions, this option would modify the configuration file. Now the
> > > > state of the Disabled key is stored elsewhere on-disk.
>
> > > > So I guess the behavior DID change... whatever "previous versions"
> > > > mean.
>
> > > > Should I file a bug report?
>
> > > > /John
>
> > > > On 30 Aug, 15:30, grandpa <john.axel.eriks...@gmail.com> wrote:
>
> > > > > Forgot to add that I'm running Snow Leopard...
>
> > > > > I've noticed that to start the ssh server from terminal I must do:
> > > > > launchctl load -w /System/Library/LaunchDaemons/ssh.plist
>
> > > > > Notice the -w switch. Without it I just get "nothing found to load"...
>
> > > > > I wonder if this is new to Snow Leopard?
>
> > > > > /John
>
> > > > > On 30 Aug, 15:06, grandpa <john.axel.eriks...@gmail.com> wrote:
>
> > > > > > Anyone out there who've tried updating sshd_config on macs and
> > > > > > restarting / ensure running the ssh server?
>
> > > > > > I've found that this ALMOST works:
>
> > > > > > service {
> > > > > >                 "com.openssh.sshd":
>
> ...
>
> läs mer »
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to