为什么我关闭终端时 phpstorm 也会关闭

为什么我关闭终端时 phpstorm 也会关闭

希望这不是世界上最愚蠢的问题,并且希望与 ubuntu stack exchange 有关。

但是当我使用命令运行 php storm 时~/Downloads/PhpStorm-181.4203.565/bin$ ./phpstorm.sh,我必须确保终端始终打开才能使用 PHPStorm。

当我关闭终端时,phpstorm就关闭了,它以前不会这样做,但现在我必须一直打开一个终端窗口才能运行phpstorm。

我为什么要这么做?

提前致谢。

答案1

进程执行的方式是,您打开的终端窗口在它生成的 shell 中运行。每次更新 PHPStorm 时,除非您使用自定义安装方法(或 PHPStorm 的 Snap 版本),否则您必须“重做”应用程序启动器。由于这不是自动完成的,因此您必须手动执行脚本,直到您使用内置函数创建应用程序启动器(请参阅我的答案的第二部分)。

因为您在命令行上执行脚本,所以有一个与之相关的父/子执行树,其中链的“父”是终端会话。由于系统处理执行树的方式,如果您关闭终端(父进程),它也会尝试关闭子进程(除非被 shell 放弃,如果您像您所说的那样直接运行脚本,这种情况并不常见)。

因此你的执行树看起来是这样的:

[Desktop Manager]
 |_ gnome-terminal
    |_ /bin/bash
       |_ [the run script for PHPStorm]
          |_ [all child processes which actually run PHPStorm, which has its own
              execution tree as well for all its processes and threads]

杀死或关闭父级 gnome-terminal 会杀死其中运行的 shell,进而杀死或关闭链中所有子进程,一直到树的末尾。


您可能应该使用 PHPStorm 内置的“创建应用程序启动器”功能,并且每次安装新版本或更新时可能都必须执行此操作。在大多数 JetBrain IDE 中,您可以安装标准启动器,这样您就无需使用其内置的“创建启动器”工具来使用启动脚本。

要创建可以在命令行上使用的启动器,打开 IDE 后,转到“工具”,然后单击“创建命令行启动器”。

要为应用程序菜单或 Unity dash/search 的 GUI 创建启动器,请转到“工具”,然后单击“创建桌面条目”。

有了桌面入口,你就不再需要打开终端来启动 PHPStorm

相关内容