I accidentally deleted a PeopleSoft Home without shutting down the app server. So, I had to find all of the processes and manually kill each one of them. A normal “ps -ef | grep FN91TST” didn’t cut it. The app server spins off some JSL and WSL processes that don’t have the environment name anywhere in the command.
Here’s the script that ended up doing the job:
#!/bin/bash
PS_USER=psoft
TARGET_PS_HOME=/psoft/FN91TST
for e in `ls /proc/*/environ`; do
PID=`echo $e | sed -e 's#/proc/##' -e 's#/environ##' `
if [ -e $e ]; then
if [ `stat -c %U $e` == $PS_USER ]; then
CURR_PS_HOME=`cat $e | tr '\0' '\n' | grep "^PS_CFG_HOME" | sed 's/^PS_CFG_HOME=//'`
if [ "$CURR_PS_HOME" == "$TARGET_PS_HOME" ]; then
echo "PID: $PID Home: $CURR_PS_HOME"
ps $PID
fi
fi
fi
done
Note: This script assumes that you are using PeopleTools 8.52 with the PS_CFG_HOME variable configured. If not, you’ll need to change it to either the PS_HOME or PS_APP_HOME variable.