Pranav Asked: 2019-05-12 05:20:44 +0800 CST2019-05-12 05:20:44 +0800 CST 2019-05-12 05:20:44 +0800 CST 无法在启动应用程序中执行两个命令 772 我indicator-stickynotes在启动应用程序中使用命令,效果很好。我将其修改为sleep 30;indicator-sticknotes. 我在不同的文章中甚至在这个网站上都读过这个。但这对我不起作用。 这就像是: 我将其修改为: startup-applications 19.04 1 个回答 Voted Best Answer Kulfy 2019-05-12T05:42:34+08:002019-05-12T05:42:34+08:00 每当定义启动应用程序时,它都会在~/.config/autostart中创建一个桌面条目。因此,它是一个桌面条目,负责在启动时启动应用程序。 在典型的命令行(终端)上,您可以使用以下命令之一来执行两个命令。 sleep 30; indicator-stickynotes sleep 30 && indicator-stickynotes sleep 30 & indicator-stickynotes 但是桌面条目与命令行有很大不同。根据桌面条目规范: 执行键 Exec 键必须包含命令行。命令行由一个可执行程序(可选地后跟一个或多个参数)组成。 因此,在 Desktop 条目中只能使用一个命令。由于您使用的是两个命令,因此最终会导致错误。桌面条目将无法启动应用程序,或者第二个命令将被视为第一个命令的参数。 为此,您可以使用 sh/bash 作为命令,例如: sh -c "sleep 30; indicator-stickynotes" 正如ElementW在他们的评论之一中指出的那样,sleep 30; exec indicator-stickynotes将节省一点内存和 PID,因为 sh 否则只会等待其子进程指示符便笺终止,并且没有其他用途。
每当定义启动应用程序时,它都会在~/.config/autostart中创建一个桌面条目。因此,它是一个桌面条目,负责在启动时启动应用程序。
在典型的命令行(终端)上,您可以使用以下命令之一来执行两个命令。
但是桌面条目与命令行有很大不同。根据桌面条目规范:
因此,在 Desktop 条目中只能使用一个命令。由于您使用的是两个命令,因此最终会导致错误。桌面条目将无法启动应用程序,或者第二个命令将被视为第一个命令的参数。
为此,您可以使用 sh/bash 作为命令,例如:
正如ElementW在他们的评论之一中指出的那样,
sleep 30; exec indicator-stickynotes
将节省一点内存和 PID,因为 sh 否则只会等待其子进程指示符便笺终止,并且没有其他用途。