gpt4 book ai didi

linux - 在另一个进程中运行 bash 脚本

转载 作者:太空宇宙 更新时间:2023-11-04 10:03:49 25 4
gpt4 key购买 nike

所以我正在制作一个简单的脚本来加载两个脚本和一个命令,但是为了争论起见,让我们保持简单而不涉及许多项目的细节。

如你所知,我在 Raspbian 环境中工作。这是最新版本。如果重要的话,我正在使用 raspberry pi 3B+。我的 pi 设置为在控制台中启动,因此我可以立即运行此脚本(通过别名)。

继续,我们里面有三个脚本,比如说 originalScript.sh:

~loop.sh

~processStart.sh

~startx(这是特定的,但如果您不知道,这是树莓派终端((可能还有任何 Linux GUI 系统))中使用的启动操作系统 GUI 的命令)

问题。这个命令需要以最后一个 startx 命令结束,GUI 将加载 processStart.sh 以运行。问题是 loop.sh 也需要运行,但是当它是第一个或第二个命令时,永远不会到达后面的命令。我会把它放在最后,但是当我启动 startx 时,脚本会随着 GUI 的加载而中断(因此需要您打开一个新终端并重新启动带有错误的原始脚本((因为 GUI 已经加载。)))

有没有办法让 loop.sh 作为一个进程启动或在另一个 session 中打开,而 startx 是这样吗?我试过了

`source ~/loop.sh`

`bash ./loop.sh`

和脚本中的其他一些人,但他们做同样的事情;在同一窗口中启动脚本。当这种情况发生时,正如预期的那样,当循环开始时,程序的其余部分直到它结束才会发生。

如果我不能像那样启动该脚本,从逻辑上讲是否有另一种方法可以通过一个脚本同时运行它?

在此先感谢您的帮助!

最佳答案

在 bash 中,loop.sh 可以通过在命令后附加一个符号来作为后台进程启动。 (即 loop.sh &)该命令将在后台运行,脚本的其余部分将继续运行。

请注意,如果 loop.sh 正在执行任何需要在 startx 之前完成的操作,您必须向脚本添加额外的逻辑以检查 startx 已准备好运行。

source loop.sh 将导致在当前 shell 中运行 loop.sh 并且在 loop.sh 退出之前不会返回。

bash loop.sh 将启动一个新的 bash 进程并运行 loop.sh。在 bash 进程退出之前,脚本不会继续。

关于linux - 在另一个进程中运行 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54063332/

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