Esta é provavelmente a maneira mais fácil de fazer o que você quer.
#!/usr/bin/env bash
# Define the program to waitfor.
program_to_watch=soffice.bin
my_commands() {
echo "This is where your first command goes."
echo "This is where your second command goes."
}
clear
echo "waitfor program script"
echo "Author: Kris Beazley"
echo "Apache 2.0 License"
echo ""
echo "$(date): Waiting for $program_to_watch to start."
while true
do
sleep 1
if [[ $(ps -A | grep $program_to_watch) && -z $var ]]
then
var=true
echo "$(date): $program_to_watch started."
echo "$(date): Asking \"my_commands\" to start, and going back to sleep."
echo "$(date): $(my_commands)"
fi
if [[ ! $(ps -A | grep $program_to_watch) && -n $var ]]
then
unset var
echo "$(date): $program_to_watch closed."
echo "$(date): Going back to sleep."
fi
done
Copie isso para um arquivo de texto e defina para um executável, mas certifique-se de que a linha #! / usr / bin / env bash não tenha linhas em branco na frente dele.
Para definir o tipo de executável:
chmod +x myscript.sh