Browse Source

Filter out the script from the PID list when using -j

master
JustAnotherArchivist 6 years ago
parent
commit
290a4bf518
1 changed files with 6 additions and 0 deletions
  1. +6
    -0
      kill-wpull-connections

+ 6
- 0
kill-wpull-connections View File

@@ -22,6 +22,12 @@ then
elif [[ "$1" == '-j' ]]
then
pids=($(pgrep --full "wpull.*$2"))

# Filter out this script; this is more complicated than it should be because you can't simply `| grep -v` the PID of this script. When you do that, you create a subshell, which you'd need to filter out as well.
# Instead, we convert the list to a string of the form " 1 2 3 ", then replace " PID " by a single space, and finally convert it back to an array for counting the remaining PIDs.
pids=" ${pids//$'\n'/ } "
pids=(${pids/ $$ / })

if [[ ${#pids[@]} -ne 1 ]]
then
echo "Error: not exactly one process found for '$2'"


Loading…
Cancel
Save