[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