From owner-freebsd-rc@FreeBSD.ORG Tue Feb 6 00:20:13 2007 Return-Path: X-Original-To: freebsd-rc@freebsd.org Delivered-To: freebsd-rc@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A41D316A40E for ; Tue, 6 Feb 2007 00:20:13 +0000 (UTC) (envelope-from zcwalinski@metroland.com) Received: from server05.metroland.com (server05.metroland.com [192.206.149.20]) by mx1.freebsd.org (Postfix) with ESMTP id 43C0713C461 for ; Tue, 6 Feb 2007 00:20:13 +0000 (UTC) (envelope-from zcwalinski@metroland.com) Received: from server06.metroland.com (tem-xchange-srv.tem.metroland.com [66.207.103.173] (may be forged)) by server05.metroland.com (8.13.1/8.13.1) with ESMTP id l160KCPs026937; Mon, 5 Feb 2007 19:20:12 -0500 (EST) (envelope-from zcwalinski@metroland.com) Received: from CSYS-EVS01.corp.metroland.com ([10.151.25.36]) by server06.metroland.com (8.11.3/8.11.1) with ESMTP id l160WRh35202; Mon, 5 Feb 2007 19:32:28 -0500 (EST) (envelope-from zcwalinski@metroland.com) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Date: Mon, 5 Feb 2007 19:10:28 -0500 Message-ID: <5CD1A0226571E74A830A15192855981801964460@CSYS-EVS01.corp.metroland.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: I need help with Script running as a daemon !!! Thread-Index: AcdJeUJ97dxf47wSS8agdVOETThiTgACKMEg From: "Cwalinski, Zygmunt" To: "Brooks Davis" Cc: freebsd-rc@freebsd.org Subject: RE: I need help with Script running as a daemon !!! X-BeenThere: freebsd-rc@freebsd.org X-Mailman-Version: 2.1.5 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: Tue, 06 Feb 2007 00:20:13 -0000 Dave,=20 Thanks for your email. I have set execute bit and change the script to: name=3D"runtest" pidfile=3D"/var/run/${name}.pid" rcvar=3D`set_rcvar` start_cmd=3Druntest_start command=3D"/etc/runtest" command_interpreter=3Dwhile load_rc_config $name runtest_enable=3D${runtest_enable-:NO} runtest_start() { $command & echo $! > ${pidfile} } I get no error when I start this script but still when I am trying to stop the daemon I am getting the following error: runtest not running? (check /var/run/runtest.pid). (pidfile contains a correct process ID) Zyggi -----Original Message----- From: Brooks Davis [mailto:brooks@freebsd.org]=20 Sent: 05-02-2007 5:56 PM To: Cwalinski, Zygmunt Cc: freebsd-rc@freebsd.org Subject: Re: I need help with Script running as a daemon !!! On Mon, Feb 05, 2007 at 05:02:26PM -0500, Cwalinski, Zygmunt wrote: > Hi, > I am a new user to FreeBSD. All is new for me but I try to learn more > and more everyday. > I have to run a script as a daemon. Nice job for first time user :) > Unfortunately I have to run more sophisticated daemon then this below > but I can't even mange this simple daemon. > Fortunately I have just found this mailing list and I hope I will get > some help from you. >=20 > I am trying to run the following script "runtest" as a daemon > -------------------------------------------------------------- > while true > do > sleep 1 > done >=20 > My daemon script: > ----------------- > #!/bin/sh > . /etc/rc.subr > # PROVIDE: Test > # REQUIRE: DAEMON > # BEFORE: LOGIN > # KEYWORD: My test > name=3D"runtest" > pidfile=3D"/var/run/${name}.pid" > rcvar=3D`set_rcvar` > start_postcmd=3Druntest_poststart > command=3D"sh /etc/runtest" > command_args=3D"&" > command_interpreter=3Dyes > load_rc_config $name > runtest_enable=3D${runtest_enable-:NO} >=20 > runtest_poststart() { > echo $! > ${pidfile} > } > run_rc_command "$1" >=20 > When I start above daemon I get: > ------------------------------------ > test# sh /usr/local/etc/rc.d/runtestd start > eval: cannot open sh: No such file or directory > [: !=3D: argument expected > [: sh: unexpected operator > Starting runtest. >=20 > and runtest script is running. >=20 > Then I try to stop it and I get the following information: > ---------------------------------------------------------- > test# sh /usr/local/etc/rc.d/runtestd stop > eval: cannot open sh: No such file or directory > [: !=3D: argument expected > runtest not running? (check /var/run/runtest.pid). >=20 > runtest.pid does exists and there is correct process ID for my script >=20 > What am I doing wrong? > Please help me with it as I have spent few days already. You need to write a runtest_start() that runs the command and immediatly create the PID file. Note that for ${command} to work at all it must be an absolute path to something with the execute bit set. -- Brooks