<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div class="elementToProof" style="font-family: "Times New Roman", Times, serif; font-size: 11pt; color: rgb(0, 0, 0);">
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.</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Chicago-talk <chicago-talk-bounces+andy_bach=wiwb.uscourts.gov@pm.org> on behalf of Richard Reina <gatorreina@gmail.com><br>
<b>Sent:</b> Sunday, November 24, 2024 5:19 PM<br>
<b>To:</b> Chicago.pm chatter <chicago-talk@pm.org><br>
<b>Subject:</b> [Chicago-talk] Determining if another perl process is running.</font>
<div> </div>
</div>
<div><style type="text/css">
<!--
.x_tg
        {border-collapse:collapse;
        border-spacing:0}
.x_tg td
        {border-color:black;
        border-style:none;
        border-width:1px;
        font-family:Arial,sans-serif;
        font-size:14px;
        overflow:hidden;
        padding:5px 5px;
        word-break:normal}
.x_tg th
        {border-color:black;
        border-style:none;
        border-width:1px;
        font-family:Arial,sans-serif;
        font-size:14px;
        font-weight:normal;
        overflow:hidden;
        padding:2px 2px;
        word-break:normal}
.x_tg .x_tg-94ls
        {background-color:#cb0000;
        border-color:inherit;
        text-align:left;
        vertical-align:top}
.x_tg .x_tg-pzl3
        {background-color:#FFFF00;
        border-color:inherit;
        text-align:left;
        vertical-align:top}
-->
</style>
<table class="x_tg">
<thead>
<tr>
<th class="x_tg-pzl3"><b>CAUTION - EXTERNAL: <br>
</b></th>
</tr>
</thead>
</table>
<br>
<div>
<div dir="ltr">Hello everyone,
<div><br>
</div>
<div>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. <br>
</div>
<div><br>
</div>
<div>When I do:</div>
<div><br>
</div>
<div>perl -e 'my $smstat = `ps -ef | grep starman`; unless ($smstat =~ /starman master/) { system("XDG_RUNTIME_DIR=/run/user/1001 exec /home/starman/<a href="http://starman.pl">starman.pl</a> start &>> /home/starman/starman.log"); print localtime . " starting
 starman\n"; } else { print "Starman is already running\n\n\n $smstat\n" }';<br>
<br>
</div>
<div>RESULTS IN:</div>
<div><br>
</div>
<div>Starman is already running<br>
<br>
<br>
 starman   203805       1  0 Nov08 ?        00:00:00 /lib/systemd/systemd --user<br>
starman   203806  203805  0 Nov08 ?        00:00:00 (sd-pam)<br>
root      472040     385  0 Nov20 ?        00:00:00 sshd: starman [priv]<br>
starman   472049  472040  0 Nov20 ?        00:00:01 sshd: starman@pts/0<br>
starman   472050  472049  0 Nov20 pts/0    00:00:00 -bash<br>
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/<a href="http://starman.pl">starman.pl</a> start &>> /home/starman/starman.log");
 print localtime . " starting starman\n"; } else { print "Starman is already running\n\n\n $smstat\n" }<br>
starman   544384  544383  0 23:11 pts/0    00:00:00 sh -c ps -ef | grep starman<br>
starman   544385  544384  0 23:11 pts/0    00:00:00 ps -ef<br>
starman   544386  544384  0 23:11 pts/0    00:00:00 grep starman<br>
</div>
<div><br>
</div>
<div>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. </div>
<div><br>
</div>
<div>Anyone know a good solution to avoid this so that I can determine whether my starman startup script is indeed running?</div>
<div><br>
</div>
</div>
</div>
<style type="text/css">
<!--
.x_tg
        {border-collapse:collapse;
        border-spacing:0}
.x_tg td
        {border-color:black;
        border-style:none;
        border-width:1px;
        font-family:Arial,sans-serif;
        font-size:14px;
        overflow:hidden;
        padding:5px 5px;
        word-break:normal}
.x_tg th
        {border-color:black;
        border-style:none;
        border-width:1px;
        font-family:Arial,sans-serif;
        font-size:14px;
        font-weight:normal;
        overflow:hidden;
        padding:2px 2px;
        word-break:normal}
.x_tg .x_tg-94ls
        {background-color:#cb0000;
        border-color:inherit;
        text-align:left;
        vertical-align:top}
.x_tg .x_tg-pzl3
        {background-color:#FFFF00;
        border-color:inherit;
        text-align:left;
        vertical-align:top}
-->
</style>
<table class="x_tg">
<thead>
<tr>
<th class="x_tg-pzl3"><b>CAUTION - EXTERNAL EMAIL:</b> This email originated outside the Judiciary. Exercise caution when opening attachments or clicking on links.
</th>
</tr>
</thead>
</table>
<br>
</div>
</body>
</html>