Date: Mon, 5 Feb 2007 19:10:28 -0500 From: "Cwalinski, Zygmunt" <zcwalinski@metroland.com> To: "Brooks Davis" <brooks@freebsd.org> Cc: freebsd-rc@freebsd.org Subject: RE: I need help with Script running as a daemon !!! Message-ID: <5CD1A0226571E74A830A15192855981801964460@CSYS-EVS01.corp.metroland.com>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5CD1A0226571E74A830A15192855981801964460>