如何优雅的启动idea

本文介绍了在Linux系统中如何优雅地启动IntelliJ IDEA,包括使用setsid避免进程随终端关闭而结束,通过alias设置别名简化启动命令,以及理解nohup、&、setsid和fork的区别。此外,还分享了通过创建脚本文件并置于/usr/bin目录下实现快速启动的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何优雅的启动idea

setsid

  • 若命令行直接运行idea.sh会在命令行输出idea的执行信息,当关闭命令行之后idea会被终止任务

  • 使用setsid命令将此命令与其父进程断开连接,此时关闭命令行后idea就不会被终止

  • setsid /opt/idea-IU-211.7628.21/bin/idea.sh &> /dev/null

方法1:alias

  • 每次输入这么长的代码肯定是麻烦的,于是我将这个长代码起了个别名idea,在这个命令执行之后,运行idea这个命令就相当于执行了上面这个长命令

  • 但是每次关闭当前对话框后我起的别名就会消失,所以我将这句话添加到了/etc/profile文件的最后,这样每次启动系统就会自动执行此命令,我们只需要执行idea就可以启动idea了

  • alias idea="setsid /opt/idea-IU-211.7628.21/bin/idea.sh &> /dev/null"

nohup、&、setsid、fork的区别

  • SIGHUP,挂断。在用户终端连接结束时发出此信号。登录Linux时,系统会分配给登录用户一个终端(Session)。
  • 以“&”方式后台运行的程序如果是一个终端的job,当终端结束时,终端会向它的所有job发送SIGHUP,这样以“&”方式运行的进程则会因为收到SIGHUP而退出

    • command &
  • nohup 命令忽略所有挂断(SIGHUP)信号。在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中。要运行后台中的 nohup 命令:添加 & 到命令的尾部nohup command > myout.file 2>&1 &

    • 2>&1:将错误输出重定向到标准输出

    • 会产生僵尸进程:运行一个程序时,它会产生一个父进程以及很多子进程。 子进程完成执行后会发送一个 Exit 信号然后死掉,这个 Exit 信号需要被父进程所读取。父进程需要随后调用 wait 命令来读取子进程的退出状态,并将子进程从进程表中移除。若父进程正确读取了子进程的 Exit 信号,则子进程会从进程表中删掉。但若父进程未能读取到子进程的 Exit 信号,则这个子进程虽然完成执行处于死亡的状态,但也不会从进程表中删掉。

  • 子进程从父进程继承了:会话、进程组和终端。setsid让一个进程脱离父进程:创建一个属于自己的会话、进程组、终端:setsid xx.sh &> /dev/null

    • 注意:代码中调用setsid时自己不能是进程组长,所以将被调用程序先执行&放到子进程,确保他不是组长。若其是组长则调用失败返回-1,调用成功返回会话ID

方法2:/usr/bin

  • 写一个脚本文件包含setsid /opt/idea-IU-211.7628.21/bin/idea.sh &> /dev/null,然后把文件命名为idea后,放在/usr/bin目录下,也是可以实现在命令行输入idea就可以启动idea的功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值