the_prole Asked: 2019-11-20 12:17:06 +0800 CST2019-11-20 12:17:06 +0800 CST 2019-11-20 12:17:06 +0800 CST 如何在不关闭从终端启动的 Android 模拟器的情况下关闭终端 772 我知道从命令行启动的任何进程都附加到命令行进程,因此当我关闭终端时,从该 shell 进程启动的任何进程都将被终止。 所以如果我想启动一个模拟器 emulator -av emu1 -ports 5000,5000 & 它创建了后台模拟器进程,但是如果我关闭终端,模拟器仍然会死机。 如何启动模拟器以使关闭终端后模拟器不会被杀死? 谢谢 android emulation 2 个回答 Voted Best Answer user993560 2019-11-20T17:19:01+08:002019-11-20T17:19:01+08:00 为了防止从终端启动的任何进程在启动进程的终端关闭时被终止,您需要在模拟器命令前加上nohup或setsid。 nohup是 no hang-ups 的缩写,您可能希望将输出重定向到 /dev/null 否则它想生成一个nohup.out文件。最后的&符号 & 导致命令作为后台进程运行。使用示例: $ nohup ./emulator -avd Nexus_5X_API_29_x86 >/dev/null & setsid在新会话中运行进程或程序,以防止进程/程序在其启动终端关闭时被杀死。使用示例: $ sudo setsid ./emulator -avd Nexus_5X_API_29_x86 注意:在我的系统上,我必须先 cd 进入~/Android/Sdk/emulator来运行模拟器,以防有人试图从开箱即用的命令行运行模拟器并收到命令未找到错误。 有关更多信息,请参见nohup或setsid的手册页。 Misantorp 2019-11-20T12:33:07+08:002019-11-20T12:33:07+08:00 您可以尝试使用screen. 如果还没有安装它 sudo apt install screen 开始画面 screen 屏幕会话开始后,发出您的命令 emulator -av emu1 -ports 5000,5000 按ctrl+a然后分离会话d 退出终端并打开一个新终端以进行验证。重新附加正在运行的会话 screen -r
为了防止从终端启动的任何进程在启动进程的终端关闭时被终止,您需要在模拟器命令前加上nohup或setsid。
nohup是 no hang-ups 的缩写,您可能希望将输出重定向到 /dev/null 否则它想生成一个nohup.out文件。最后的&符号 & 导致命令作为后台进程运行。使用示例:
setsid在新会话中运行进程或程序,以防止进程/程序在其启动终端关闭时被杀死。使用示例:
注意:在我的系统上,我必须先 cd 进入~/Android/Sdk/emulator来运行模拟器,以防有人试图从开箱即用的命令行运行模拟器并收到命令未找到错误。
有关更多信息,请参见nohup或setsid的手册页。
您可以尝试使用
screen
. 如果还没有安装它开始画面
屏幕会话开始后,发出您的命令
按ctrl+a然后分离会话d
退出终端并打开一个新终端以进行验证。重新附加正在运行的会话