[Chicago-talk] Determining if another perl process is running.
Alan Mead
amead2 at alanmead.org
Mon Nov 25 07:54:06 PST 2024
I like Andy's PID file suggestion, but I would be inclined to make this
a bash script rather than a perl one-liner and test something like:
`ps aux | grep perl | grep starman`
And if that command causes it's own failure (by always creating a
process with 'perl' and 'starman') then:
`ps aux | grep [p]erl | grep [s]tarman`
If you find bash scripting not super easy (like me), ChatGPT is very
helpful. It's helped me a lot in writing better admin scripts.
-Alan
On 11/25/24 9:41 AM, Andy Bach wrote:
> Need to expand your grep RE or add a grep -v to remove the ones you
> don't want, though, then you have to remove the one you just added.
> Another is to track the pids, find the ones you've created and look
> for one outside that set. You could have starman (if it doesn't)
> create a .pid file and use that to check that pid's status (with lsof
> -p <pid> maybe), rather than grepping.
> ------------------------------------------------------------------------
> *From:* Chicago-talk
> <chicago-talk-bounces+andy_bach=wiwb.uscourts.gov at pm.org> on behalf of
> Richard Reina <gatorreina at gmail.com>
> *Sent:* Sunday, November 24, 2024 5:19 PM
> *To:* Chicago.pm chatter <chicago-talk at pm.org>
> *Subject:* [Chicago-talk] Determining if another perl process is running.
> *CAUTION - EXTERNAL:
> *
>
>
> Hello everyone,
>
> So excited about the Winter Perl Conference that I just registered for
> that I thought I would rebuild my aged Perl Dancer2 website. I 've
> done so and deployed it on a Digital Ocean droplet but I've hit a snag
> in setting up a cron job to make sure starman is running. It seems my
> query into whether the process is running gets treated as evidence
> that the process IS running.
>
> When I do:
>
> perl -e 'my $smstat = `ps -ef | grep starman`; unless ($smstat =~
> /starman master/) { system("XDG_RUNTIME_DIR=/run/user/1001 exec
> /home/starman/starman.pl <http://starman.pl> start &>>
> /home/starman/starman.log"); print localtime . " starting starman\n";
> } else { print "Starman is already running\n\n\n $smstat\n" }';
>
> RESULTS IN:
>
> Starman is already running
>
>
> starman 203805 1 0 Nov08 ? 00:00:00
> /lib/systemd/systemd --user
> starman 203806 203805 0 Nov08 ? 00:00:00 (sd-pam)
> root 472040 385 0 Nov20 ? 00:00:00 sshd: starman [priv]
> starman 472049 472040 0 Nov20 ? 00:00:01 sshd: starman at pts/0
> starman 472050 472049 0 Nov20 pts/0 00:00:00 -bash
> starman 544383 472050 0 23:11 pts/0 00:00:00 perl -e my $smstat
> = `ps -ef | grep starman`; unless ($smstat =~ /starman master/) {
> system("XDG_RUNTIME_DIR=/run/user/1001 exec /home/starman/starman.pl
> <http://starman.pl> start &>> /home/starman/starman.log"); print
> localtime . " starting starman\n"; } else { print "Starman is already
> running\n\n\n $smstat\n" }
> starman 544384 544383 0 23:11 pts/0 00:00:00 sh -c ps -ef |
> grep starman
> starman 544385 544384 0 23:11 pts/0 00:00:00 ps -ef
> starman 544386 544384 0 23:11 pts/0 00:00:00 grep starman
>
> It always says it's running even if it is not apparently because it's
> seeing 'starman master/ in the perl script that is inquiring.
>
> Anyone know a good solution to avoid this so that I can determine
> whether my starman startup script is indeed running?
>
> *CAUTION - EXTERNAL EMAIL:* This email originated outside the
> Judiciary. Exercise caution when opening attachments or clicking on
> links.
>
>
>
> _______________________________________________
> Chicago-talk mailing list
> Chicago-talk at pm.org
> https://mail.pm.org/mailman/listinfo/chicago-talk
--
Alan D. Mead, Ph.D.
President, Talent Algorithms Inc.
science + technology = better workers
https://talalg.com
He who confuses political liberty with freedom and political equality
with similarity has never thought for five minutes about either.
-- Shaw, from "Maxims for Revolutionists"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/chicago-talk/attachments/20241125/e65ce662/attachment.html>
More information about the Chicago-talk
mailing list