On Tue, Jun 16, 2015 at 10:30:40PM +0200, Antoine Jacoutot wrote: > On Tue, Jun 16, 2015 at 07:38:28PM +0000, nusenu wrote: > > -----BEGIN PGP SIGNED MESSAGE----- > > Hash: SHA512 > > > > Hi, > > > > imagine you have N services named: > > > > service > > service1 > > service2 > > ... > > > > or > > a > > ab > > abc > > ... > > > > Now you want to stop 'service' and you run: > > 'rcctl stop service' > > > > all (not just one) of them are gone? > > > > > > rc.subr invokes pkill and does a "startswith" match but does not require > > a perfect/complete match. > > > > What do you think about this patch to require a perfect match when > > sending invoking pkill/pgrep? > > Won't work. > Carefully read pgrep(1) again.
Oh and I forgot to mention: what you are showing is the exact reason why pexp is settable in the rc.d script. To prevent such things. > > @@ -150,15 +150,15 @@ > > } > > > > rc_check() { > > - - pgrep -q -f "^${pexp}" > > + pgrep -q -f "^${pexp}$" > > } > > > > rc_reload() { > > - - pkill -HUP -f "^${pexp}" > > + pkill -HUP -f "^${pexp}$" > > } > > > > rc_stop() { > > - - pkill -f "^${pexp}" > > + pkill -f "^${pexp}$" > > } > > > > rc_cmd() { > > > > -----BEGIN PGP SIGNATURE----- > > > > iQIcBAEBCgAGBQJVgHs0AAoJEFv7XvVCELh0APwQAIGVUfu+g4gh/WJkvZHbBRgg > > u5qT1AlSDCDkDjBtfAuat+9M6mMHhDsvoQ0qaN3a7us4Ib/I3agIeJlXWZrci4BG > > 2i/AsKmdy/0pmUP4XgsodGP+GyaGLgEa3QsMSCnUZvyZeWrU59F+phVXTv8qyq0a > > JkrI5PtdxdleSfVXzlZYo6prooKHMdq7Dkt1pO5oLCLLJZsGP1TffbTBlZhekrzt > > u8TG+aWEMtdVllPIdyqNmPelhLuA24jShAPKI6ptowE5oKdD+iBof+4VZGI/2pU3 > > H/8gJqJqvUETaVo+8SUB2XMyWMfQf7LphaCm9u7PpbqBXsUKYrqxVY01E/FzPWZC > > QPDo3P8mA+bJYHZ+PZq7o8akRYvIQYWSWZPJ/ik90E0hs05W/Zy2YVWM8EOBeOJM > > /bz+Nl6GBsTnzOMbUmVlpHyE+7MXRorJXigOkz09Z/dIiI0oAiGqSkt87OABS7+T > > ZtsKug55j3LV5RmGTqHyVlHJ0GwFi7O/UzHqUey4PMA4iVi7h3ybm4fxynFvpB7y > > OQ31gFRPVloZyDodalnFdIp+Nhuv2PZz9P4hvvnyQU617gCLPpTNzJ0o5d1OyViS > > iVSwFtyYrtmrmEhRKAmd9qY8R8NumPHEimNjgENDrZwsCnFJ3QSWLCGPTqqMlV76 > > WUPxt1Yg1NKH0gVEJih6 > > =kbJl > > -----END PGP SIGNATURE----- > > > > -- > Antoine -- Antoine