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>
