如何解决如何在不是孩子并且可以继续运行的bash中执行应用程序?
我正在编写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中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。