[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