From owner-freebsd-rc@FreeBSD.ORG Wed Jan 15 19:06:06 2014 Return-Path: Delivered-To: freebsd-rc@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 08D97608 for ; Wed, 15 Jan 2014 19:06:06 +0000 (UTC) Received: from mail-ob0-x229.google.com (mail-ob0-x229.google.com [IPv6:2607:f8b0:4003:c01::229]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id C3F261A84 for ; Wed, 15 Jan 2014 19:06:05 +0000 (UTC) Received: by mail-ob0-f169.google.com with SMTP id wp4so1647363obc.28 for ; Wed, 15 Jan 2014 11:06:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=FD6cX51YK2c4OxzpvpEMrldxgPV3Wzz8+CMjedrrLJM=; b=T8CN4lWjZk4R11QZ2JLLKduvzjV87g5mIUF+GraxhA8rWYWtcCPDdPUhmiGFRt1bo/ KydzJrJak/fu6I4szCfU2sMzneOWLa05OpuQVkuxrCCrtsGh5v4f9G9FAJjbNDE/+oml tJG9P7XAssp+Q3PFTAxI2BcT+T2GRBVs6mACxGAZGqZlqNrGm/x6bVI2MJzWiQcsmukj dHN4p9Ck5ZCw9RD+iRqFlujjYVkw+QMWAdCCdbVtgoO4XrHJ9esXVUQKQFoP65+eR5Gy 8aI2VykL+qUAnlpOAQZv//1lfcxau6UK8dgG6DXyCizrPVpirgSXY+nfnMgRX64iiUnx hqQg== MIME-Version: 1.0 X-Received: by 10.60.118.168 with SMTP id kn8mr3066991oeb.43.1389812764928; Wed, 15 Jan 2014 11:06:04 -0800 (PST) Received: by 10.76.25.134 with HTTP; Wed, 15 Jan 2014 11:06:04 -0800 (PST) Date: Wed, 15 Jan 2014 20:06:04 +0100 Message-ID: Subject: Stopping services by rc.d scripts From: =?ISO-8859-2?Q?Tomek_Wa=B3aszek?= To: freebsd-rc@freebsd.org Content-Type: multipart/mixed; boundary=047d7b4728162a90fb04f0070056 X-Content-Filtered-By: Mailman/MimeDel 2.1.17 X-BeenThere: freebsd-rc@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "Discussion related to /etc/rc.d design and implementation." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Jan 2014 19:06:06 -0000 --047d7b4728162a90fb04f0070056 Content-Type: text/plain; charset=ISO-8859-1 Hello, I`ve seen some strange behaviour of the rc scripts when I was stopping openntpd and opensmtpd. When I was stopping one of those services I saw this: [root@shewolf ~]# ptree -C ntpd -l 2690 ntpd: [priv] 2691 ntpd: ntp engine 2692 ntpd: dns engine *[root@shewolf ~]# /usr/local/etc/rc.d/openntpd stopStopping openntpd.kill: 2691: No such processkill: 2692: No such process* [root@shewolf ~]# uname -a FreeBSD shewolf.com.pl 9.2-RELEASE-p2 FreeBSD 9.2-RELEASE-p2 #0 r259233: Thu Dec 12 19:57:26 CET 2013 root@shewolf.com.pl:/usr/obj/usr/src/sys/SHEWOLF i386 I was wondering why there are those 'No such process' errors. So in short words what is happening, rc framework will collect all openntpd pids (openntpd does not support pidfile :( ) and send SIGTERM to them. When the first process of the openntpd gets SIGTERM it will first kill his children and quit. So this is the reason why we are seeing 'No such process'. This problem does not occurs when a daemon supports pid file becuase rc will get only one pid and send SIGTERM only to it. It was quite annoying for me so I decided to do something with it. The simplest solution would be to add pidfile into the /usr/local/etc/rc.d/openntpd but there is no pidfile in this service. So I wrote a patch for /etc/rc.subr, you can defined variable *leader* (bool) in the rc script. If leader will be set to true ("YES" :)) it will kill only the process group leader, so we will not get any 'No such process' errors and the process group leader will kill necessary processes. If you will set it to NO or dont define it in the script it will be running with the default behaviour. Maybe there are some other methods to do this but I dont know them. Patch is in the attachment, I`ve deployed it on my server and everything is working but anyway be careful ;). If you found it useful thats good but if you think that my problem is ridiculous and my solution is terrible just ignore this post ;). Tomek --047d7b4728162a90fb04f0070056 Content-Type: application/octet-stream; name=patch Content-Disposition: attachment; filename=patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_hqgyg2wq0 ZGlmZiAtLWdpdCBhL3JjLnN1YnIgYi9yYy5zdWJyCmluZGV4IDg1MGJjMDMuLjY2OGVhMTQgMTAw NjQ0Ci0tLSBhL3JjLnN1YnIKKysrIGIvcmMuc3VicgpAQCAtMjUyLDcgKzI1Miw3IEBAIGNoZWNr X3BpZGZpbGUoKQogCQlkZWJ1ZyAicGlkIGZpbGUgKCRfcGlkZmlsZSk6IG5vIHBpZCBpbiBmaWxl LiIKIAkJcmV0dXJuCiAJZmkKLQlfZmluZF9wcm9jZXNzZXMgJF9wcm9jbmFtZSAkX2ludGVycHJl dGVyICctcCAnIiRfcGlkIiAke19sZWFkZXI6LSJOTyJ9CisJX2ZpbmRfcHJvY2Vzc2VzICRfcHJv Y25hbWUgJHtfaW50ZXJwcmV0ZXI6LS59ICctcCAnIiRfcGlkIgogfQogCiAjCkBAIC0yNjUsMTIg KzI2NSwxMCBAQCBjaGVja19wcm9jZXNzKCkKIHsKIAlfcHJvY25hbWU9JDEKIAlfaW50ZXJwcmV0 ZXI9JDIKLQlfbGVhZGVyPSQzCi0KIAlpZiBbIC16ICIkX3Byb2NuYW1lIiBdOyB0aGVuCi0JCWVy ciAzICdVU0FHRTogY2hlY2tfcHJvY2VzcyBwcm9jbmFtZSBbaW50ZXJwcmV0ZXIgbGVhZGVyXScK KwkJZXJyIDMgJ1VTQUdFOiBjaGVja19wcm9jZXNzIHByb2NuYW1lIFtpbnRlcnByZXRlcl0nCiAJ ZmkKLQlfZmluZF9wcm9jZXNzZXMgJF9wcm9jbmFtZSAkX2ludGVycHJldGVyICctYXgnICRfbGVh ZGVyCisJX2ZpbmRfcHJvY2Vzc2VzICRfcHJvY25hbWUgJHtfaW50ZXJwcmV0ZXI6LS59ICctYXgn CiB9CiAKICMKQEAgLTI5NSwxMyArMjkzLDEyIEBAIGNoZWNrX3Byb2Nlc3MoKQogIwogX2ZpbmRf cHJvY2Vzc2VzKCkKIHsKLQlpZiBbICQjIC1uZSA0IF07IHRoZW4KKwlpZiBbICQjIC1uZSAzIF07 IHRoZW4KIAkJZXJyIDMgJ1VTQUdFOiBfZmluZF9wcm9jZXNzZXMgcHJvY25hbWUgaW50ZXJwcmV0 ZXIgcHNhcmdzJwogCWZpCiAJX3Byb2NuYW1lPSQxCiAJX2ludGVycHJldGVyPSQyCiAJX3BzYXJn cz0kMwotCV9sZWFkZXI9JDQKIAogCV9wcmVmPQogCWlmIFsgJF9pbnRlcnByZXRlciAhPSAiLiIg XTsgdGhlbgkjIGFuIGludGVycHJldGVkIHNjcmlwdApAQCAtMzQxLDIyICszMzgsMTQgQEAgX2Zp bmRfcHJvY2Vzc2VzKCkKIAkJX2ZwX21hdGNoPSdjYXNlICIkX2FyZzAiIGluCiAJCSAgICAkX3By b2NuYW1lfCRfcHJvY25hbWVibnwke19wcm9jbmFtZWJufTp8Iigke19wcm9jbmFtZWJufSkifCJb JHtfcHJvY25hbWVibn1dIiknCiAJZmkKLQkKKwogCV9wcm9jY2hlY2s9IlwKLQkJJFBTIDI+L2Rl di9udWxsIC1vIHBpZD0gLW8gcGdpZD0gLW8gamlkPSAtbyBjb21tYW5kPSAkX3BzYXJncyInIHwK LQkJd2hpbGUgcmVhZCBfbnBpZCBfcGdpZCBfamlkICciJF9mcF9hcmdzIic7IGRvCisJCSRQUyAy Pi9kZXYvbnVsbCAtbyBwaWQ9IC1vIGppZD0gLW8gY29tbWFuZD0gJF9wc2FyZ3MiJyB8CisJCXdo aWxlIHJlYWQgX25waWQgX2ppZCAnIiRfZnBfYXJncyInOyBkbwogCQkJJyIkX2ZwX21hdGNoIicK LQkJCQlpZiBjaGVja3llc25vIF9sZWFkZXI7Ci0JCQkJdGhlbiAKLQkJCQkJaWYgWyAiJEpJRCIg LWVxICIkX2ppZCIgLWEgIiRfbnBpZCIgLWVxICIkX3BnaWQiICBdOyB0aGVuCi0JCQkJCQllY2hv IC1uICIkX3ByZWYkX25waWQiOwotCQkJCQkJX3ByZWY9IiAiOwotCQkJCQlmaQotCQkJCWVsc2UK LQkJCQkJaWYgWyAiJEpJRCIgLWVxICIkX2ppZCIgXTsgdGhlbgotCQkJCQkJZWNobyAtbiAiJF9w cmVmJF9ucGlkIjsKLQkJCQkJCV9wcmVmPSIgIjsKLQkJCQkJZmkKKwkJCQlpZiBbICIkSklEIiAt ZXEgIiRfamlkIiBdOworCQkJCXRoZW4gZWNobyAtbiAiJF9wcmVmJF9ucGlkIjsKKwkJCQlfcHJl Zj0iICI7CiAJCQkJZmkKIAkJCQk7OwogCQkJZXNhYwpAQCAtNjcwLDE1ICs2NTksMTMgQEAgcnVu X3JjX2NvbW1hbmQoKQogCXJjX3BpZD0KIAlfcGlkY21kPQogCV9wcm9jbmFtZT0ke3Byb2NuYW1l Oi0ke2NvbW1hbmR9fQotCWNvbW1hbmRfaW50ZXJwcmV0ZXI9JHtjb21tYW5kX2ludGVycHJldGVy Oi0ufQotCV9sZWFkZXI9JHtsZWFkZXI6LSJOTyJ9CiAKIAkJCQkJIyBzZXR1cCBwaWQgY2hlY2sg Y29tbWFuZAogCWlmIFsgLW4gIiRfcHJvY25hbWUiIF07IHRoZW4KIAkJaWYgWyAtbiAiJHBpZGZp bGUiIF07IHRoZW4KIAkJCV9waWRjbWQ9J3JjX3BpZD0kKGNoZWNrX3BpZGZpbGUgJyIkcGlkZmls ZSAkX3Byb2NuYW1lICRjb21tYW5kX2ludGVycHJldGVyIicpJwogCQllbHNlCi0JCQlfcGlkY21k PSdyY19waWQ9JChjaGVja19wcm9jZXNzICciJF9wcm9jbmFtZSAkY29tbWFuZF9pbnRlcnByZXRl ciAkX2xlYWRlciInKScKKwkJCV9waWRjbWQ9J3JjX3BpZD0kKGNoZWNrX3Byb2Nlc3MgJyIkX3By b2NuYW1lICRjb21tYW5kX2ludGVycHJldGVyIicpJwogCQlmaQogCQlpZiBbIC1uICIkX3BpZGNt ZCIgXTsgdGhlbgogCQkJX2tleXdvcmRzPSIke19rZXl3b3Jkc30gc3RhdHVzIHBvbGwiCg== --047d7b4728162a90fb04f0070056--