我正在尝试创建一个启动某些程序的脚本
startup.sh
knetworkmanager
emesene
keepassx
问题是,当我运行脚本时,它只启动knetworkmanager。这是因为它会启动它,然后等到它完成。如何在不等待的情况下启动程序?我不认为我可以在每个命令后添加“&”,因为脚本完成后所有进程仍将被终止。
我正在尝试创建一个启动某些程序的脚本
startup.sh
knetworkmanager
emesene
keepassx
问题是,当我运行脚本时,它只启动knetworkmanager。这是因为它会启动它,然后等到它完成。如何在不等待的情况下启动程序?我不认为我可以在每个命令后添加“&”,因为脚本完成后所有进程仍将被终止。
Answers:
当运行脚本的shell退出时,它会向您启动的进程发送HUP信号。如果那些没有发现信号,他们将终止。因此,仅仅使用&是否足够取决于应用程序。为了安全起见,请使用nohup:
nohup your-program >>/dev/null 2>>/dev/null &
根据您提供的示例程序,看起来您正在尝试在KDE启动时启动某些程序。如果是这样,请查看KDE的自动启动功能。本文讨论更多内容并提供有关如何将程序添加到自动启动的说明。
在每个命令之后添加'&'肯定会起作用。这意味着即使在startup.sh完成后,这些脚本或程序仍将继续运行。