gpt4 book ai didi

linux - 如何在 linux 中打开程序时运行 bash 脚本

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:23:19 26 4
gpt4 key购买 nike

当我在 Ubuntu 上单击 NetBeans 或 DropBox 等程序时,有没有办法执行 bash 脚本并在退出时执行 bash 脚本

我的想法是在 cronjob 上创建 bash 脚本 @reboot 每秒检查该程序是否存在于当前进程中

#!/bin/bash
NameOfprogram="NetBeans"
while [[ true ]]; do
countOfprocess=$(ps -ef |grep $NameOfprogram | wc -l)
if [[ $countOfprocess -gt 1 ]]; then
#execute bash
fi
sleep 1
done

但我认为这个想法不是最好的,有没有更好的实现方式?

最佳答案

更好的方法是将可执行文件包装在脚本中。这意味着您将带有程序名称的脚本放在您的路径中(可能是 $HOME/bin),Linux 将使用它而不是真正的可执行文件。

现在您可以使用以下命令执行真正的程序:

/usr/bin/NetBeans "$@"

所以要执行真正的可执行文件,只需将绝对路径放在名称前面即可。奇怪的 "$@" 也传递了某人可能给脚本的任何参数。

围绕这个循环:

while [[ true ]]; do
/usr/bin/NetBeans "$@"
done

但是有一个问题:你不能再退出这个程序了。一旦尝试,它就会重新启动。因此,如果您只想在崩溃时重新启动:

while [[ true ]]; do
/usr/bin/NetBeans "$@" && exit 0
done

只要程序因为错误退出,就会重新启动。如果退出它,脚本将停止。

关于linux - 如何在 linux 中打开程序时运行 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17662957/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com