It doesn't seem to be possible to restart puppetd from within puppetd.
remote_file { "/etc/puppet.conf":
source => "puppet/puppet.conf",
mode => 444,
notify => Service["puppet"],
}
service { "puppet":
ensure => true,
hasrestart => true,
restart => "kill -HUP `/var/run/puppet/puppetd.pid`",
hasstatus => true,
}
Gives me
May 31 17:06:50 diesel puppetd[27733]: (//Node[diesel]/dbserver/baseclass/centos/Remote_file[/etc/puppet.conf]/File[/etc/puppet.conf]/source) replacing from source puppet:///dist/puppet/puppet.conf with contents {md5}b71014d9e6b6b189591a2ea7bd4b1cf3
May 31 17:06:50 diesel puppetd[27825]: Could not create PID file: /var/run/puppet/puppetd.pid
May 31 17:06:50 diesel puppetd[27733]: (//Node[diesel]/dbserver/baseclass/centos/Service[puppet]/ensure) ensure changed 'stopped' to 'running'
May 31 17:06:50 diesel puppetd[27733]: (//Node[diesel]/dbserver/baseclass/centos/Service[puppet]) Triggering 'refresh' from 1 dependencies
but puppetd doesn't actually restart.
I get the same result without the "restart" service parameter.
See also ticket #793.