我想编写一个脚本,其中包括使用 evince 打开 PDF 文件,然后关闭终端。
到目前为止我已经得到:
evince &
sleep 2
kill -9 $PPID
但是当终端关闭时,evince 也会关闭。我尝试使用,disown -h -a
但是没有用。
答案1
使用nohup
您可以避免 evince 进程与其父进程一起终止:
nohup evince &
sleep 2
kill -9 $PPID
关于 nohup 的作用和来源的更多细节可以在 wikipedia 上找到:https://en.wikipedia.org/wiki/Nohup
nohup 是一个 POSIX 命令,用于忽略 HUP(挂断)信号。按照惯例,HUP 信号是终端警告相关进程注销的方式。
如果尚未重定向,则通常会转到终端的输出将转到名为 nohup.out 的文件。
答案2
在我的 Ubuntu 上
nohup evince &
exit
工作如预期。不睡觉,不杀戮。
kill -9
在任何情况下都是过度的,kill -HUP
完全可以杀死一个 shell,也可能是一个终端......我不想检查,因为使用 XFCE 似乎所有窗口只有一个终端进程,所以kill -9 $PPID
会杀死全部我的终端窗口。