Bug 782805

Summary: stop on event not stopping service when initctl emit used
Product: Red Hat Enterprise Linux 6 Reporter: Ted X Toth <txtoth>
Component: upstartAssignee: Lukáš Nykrýn <lnykryn>
Status: CLOSED NOTABUG QA Contact: qe-baseos-daemons
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.4CC: joe, prc
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-01-24 14:18:11 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Ted X Toth 2012-01-18 14:58:03 UTC
Description of problem:
using initctl emit to stop a server does work

Version-Release number of selected component (if applicable):
0.6.5-10

How reproducible:
Use openssl s_server as a test service. Create a cert and key for the test service:

openssl req -newkey rsa:1024 -x509 -nodes -keyout server_key.pem -new -out server_cert.pem

Create /etc/init/bounce.conf and insert the following text

start on BounceOn
stop on BounceOff
stop on runlevel [0126]
console none
respawn
respawn limit 5 5
pre-stop exec echo "pre-stop"
pre-start exec echo "pre-start"
post-start exec echo "post-start"
exec openssl s_server -cert /root/server_cert.pem -key /root/server_key.pem

Run:
initctl emit BounceOn

Verify that openssl is running:
ps -ef | grep openssl

Try and stop the service:
initctl emit BounceOff

Verify whether the service stopped:
ps -ef | grep openssl

Steps to Reproduce:
1.
2.
3.
  
Actual results:
service not stopped

Expected results:
service stopped

Additional info:

Comment 2 Ted X Toth 2012-01-18 16:22:55 UTC
Joe Nall pointed me at this statement:
Only one event expression is permitted for each of start on and stop on,
repeating the stanza will override the previously defined expression

So I removed:
stop on runlevel [0126]

from the config file and tried to emit the BounceOff event but again the
service didn't stop. I then rebooted the box and retried the experiment and it
worked. My original test config file probably should have had:

stop on BounceOff or on runlevel [S0126]

This bug can be closed as it's not a bug but the man page should be altered to
clarify how event expressions work. Also it's not clear why I had to reboot to
affect the change when init monitors the config files.

Comment 3 Lukáš Nykrýn 2012-01-20 08:21:56 UTC
Was the service running when you altered the configuration file? Upstart does not change "settings" for a service if it is running.

Comment 4 Ted X Toth 2012-01-20 13:07:12 UTC
So I'd need to stop the service, edit the config and then restart it for the config changes to take affect?

Comment 5 Lukáš Nykrýn 2012-01-20 13:32:55 UTC
If the job you have configured was running, the configuration will take affect after all instances of the job stops.