问题描述
我正在编写bash脚本,并正在检查应用程序是否正在运行。如果未运行,则应在单独的进程(而不是子进程)中启动它。如果正在运行,则应将窗口最大化。我做到了,但是新进程在启动后不久就终止了,可能是因为脚本进程结束了。
#!/bin/bash
if (ps aux | grep App1 | grep -v grep > /dev/null)
then
echo App1 is running
wmctrl -x -r WMClassOfApp1 -b "add,maximized_vert,maximized_horz"
else
echo App1 is not running
sh -c /usr/bin/app1 & disown # This app should be started in a separate process and not terminate
fi
我可能不得不补充一点,我是从udev规则调用此脚本的。当我在终端中执行它时,它可以正常工作。当我从udev规则调用它时,app1终止。
解决方法
bash脚本不是解决此问题的正确方法:最好是将其添加到系统的crontab中。