[Chicago-talk] Determining if another perl process is running.

Steven Lembark lembark at wrkhors.com
Thu Feb 6 11:19:24 PST 2025


On November 25, 2024 6:47:52 PM EST, Richard Reina <gatorreina at gmail.com> wrote:
>Gentlemen,
>
>Thank you for the replies I ended up using pgrep in my crontab and it seems
>to work well so far:
>
>perl -e 'my $smstat = `pgrep -w "starman master"`; unless ($smstat &&
>$smstat > 0) { system("XDG_RUNTIME_DIR=/run/user/1001 exec /home/starman/
>starman.pl start &>> /home/starman/starman.log"); print localtime . "
>starting starman\n"; } else { print "Starman is already running\n" }';
>
>Is that okay?
>
>El lun, 25 nov 2024 a las 9:41, Andy Bach (<Andy_Bach at wiwb.uscourts.gov>)
>escribió:
>
>> 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 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
>> 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
>>

PGREP(1)    User Commands   PGREP(1)

NAME
       pgrep,  pkill, pidwait - look
       up,  signal,  or   wait   for
       processes  based  on name and
       other attributes

SYNOPSIS
       pgrep [options] pattern
       pkill [options] pattern
       pidwait [options] pattern
-- 
Steven Lembark
888 359 3508
lembark at wrkhors.com


More information about the Chicago-talk mailing list