Linux 启动脚本

Linux 启动脚本

背景:我在笔记本电脑上运行 Arch Linux 版本。该系统已经运行了三年。我重新安装了几次,在重新安装过程中,我将主目录中的旧点文件带了过去。这让我几乎不可能记住我所做的所有配置。我使用 openbox 作为 WM,并且没有任何桌面环境。

现在我想要一些简单的事情:

我希望计算机tint2在启动时运行。为此,我进行了搜索并了解到~/.xinitrc每当我运行startx时都会运行,并且~/.config/openbox/autostart在运行openbox时执行。

所以我首先将其写成.xinitrc两行:

exec openbox
tint2 &

然后再次运行pkill xstartxopenbox 照常运行,但 tint2 没有运行。

那么我们何不试试autostart呢?我写了一行代码autostart

tint2 &

重新启动 X,什么也没发生。

我还chmod +x删除了自动启动脚本,并尝试将行更改为

(sleep 2s && tint2) &

但是 openbox 一直拒绝在启动时显示 tint2 任务栏。

如果我在终端窗口中运行自动启动脚本,它就可以起作用。

我的猜测是,其他一些配置文件/脚本被执行了。如果是这样,有什么方法可以知道它们是哪些文件?或者简单地说,为什么 xinitrc 或 autostart 脚本不起作用?

答案1

制作粗略的 .xinitrc 的传统方法是将其结构化为

进程1 &
进程2 &
进程3 &
...
最后一个进程

最后一个没有 & 符号的进程是“魔法进程”,关闭它会关闭 X。传统上,在 twm 中,魔法进程是一个 xterm。当没有 & 符号的进程结束时,X 就会关闭。如果你将最后一个进程 ( process4 &) 置于后台,X 就会关闭。我认为你的例子应该是这样的:

tint2 和
执行 openbox 会话

至少在某些情况下,我发现省略“&”符号似乎没什么关系。我偶尔会不小心省略“&”,但并没有什么不良影响。

还要确保chmod u+x .xinitrc

答案2

我通过更换解决了这个问题

exec openbox

openbox-session

.xinitrc。结果发现autostart只有 才能运行openbox-session

相关内容