如何解决终端执行pstorm .打开PhpStorm时随终端关闭退出的问题
问题原因
当前放置在/usr/local/bin/pstorm的脚本采用前台直接启动的逻辑,会让PhpStorm进程和当前所在终端会话形成绑定关系。终端关闭时会向所有关联子进程发送SIGHUP挂断信号,直接触发PhpStorm进程退出,因此无法实现和code .一致的独立运行效果。
解决方法
1. 修正启动脚本逻辑,实现进程脱离终端
编辑/usr/local/bin/pstorm的内容,替换原有直接前台启动的代码,改为后台运行+忽略挂断信号的逻辑,修改后脚本参考内容:
#!/bin/bash nohup "/home/username/.local/share/JetBrains/Toolbox/apps/PhpStorm/ch-0/203.7148.74/bin/phpstorm.sh" "$@" >/dev/null 2>&1 &
修改完成后执行权限配置:chmod +x /usr/local/bin/pstorm
之后执行pstorm .打开项目时,PhpStorm会作为独立进程运行,关闭终端不会连带关闭IDE,效果和VSCode的code .命令完全一致。
2. 优化长期使用的稳定性
硬复制脚本到/usr/local/bin的方案存在长期使用隐患:Toolbox每次升级PhpStorm后,内部启动脚本路径中的版本号目录会自动变更,之前复制的旧脚本会因找不到启动文件失效。更稳妥的方案不需要通过root权限复制文件,操作如下:
- 编辑用户级shell配置文件(bash用户修改
~/.bashrc,zsh用户修改~/.zshrc) - 在配置文件末尾追加Toolbox脚本目录到用户PATH:
export PATH="$PATH:/home/username/.local/share/JetBrains/Toolbox/bin" - 保存配置后执行
source ~/.bashrc(或对应shell的配置文件)让路径生效 - 直接修改Toolbox目录下生成的
pstorm脚本,添加上述nohup后台运行的逻辑即可。这种方式下Toolbox每次升级后会自动更新脚本内的启动路径,不需要手动维护,也不会触发系统目录写入权限不足的问题。
内容的提问来源于stack exchange,提问作者Pieter Steyn
相关产品推荐
相关产品推荐

