如何让 .sh 文件在 Lubuntu 12.04 启动时运行?

如何让 .sh 文件在 Lubuntu 12.04 启动时运行?

在三星 N145 上网本上运行 lubuntu 桌面。

我得到了/etc/xdg/lxsession/Lubuntu/autostart 并添加了行

@home/magpie/touchpad_settings.sh

我的文件名是 touchpad_settings.sh,如果单击然后执行,它就会执行并起作用。

这意味着我无法再登录并获取我的面板,因此我用 USB 启动程序撤消了它,并来到这里看看是否有人可以澄清。

Lubuntu 不使用启动管理器,这是一个自制文件,因此它也不会出现在桌面会话设置中。

正如下面的答案所建议的那样,我尝试过

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
/bin/sh /home/magpie/touchpad_settings.sh
exit 0

我也尝试过以下几行:

/bin/bash /home/magpie/touchpad_settings.sh

sh /home/magpie/touchpad_settings.sh

但不起作用。

答案1

在文件管理器中,转到/usr/share/applications。使用 root 权限打开它(工具 -> 以 root 权限打开当前文件夹)

以 root 身份打开

在根访问文件管理器窗口中,创建一个新文件(文件 -> 新建 -> 空白文件)

空白文件

将新文件命名为 touchpad.desktop。

文件名

找到您新创建的文件,右键单击它,使用 leafpad 对其进行编辑。

在此处输入图片描述

在 leafpad 中,粘贴以下内容:

[Desktop Entry]
Name=Touchpad Autostart
Exec=/home/magpie/touchpad_settings.sh
Type=Application
Terminal=false

保存。如果无法保存,则表示您不在具有 root 访问权限的窗口中。重新开始并仔细按照说明操作。

再次,在根访问文件管理器窗口中找到您的文件。右键单击并复制。

复制

现在将根窗口导航到自动启动文件夹:

/etc/xdg/autostart/

最后,粘贴您之前创建的桌面文件。

自动启动文件

如果你做的所有事情都正确无误,你应该会看到很多其他自动启动文件,但你也会看到文件“Touchpad Autostart”

在那...

这不是最快的方法,但你似乎在其他答案中遇到了很多步骤,所以我想慢慢来,提供很多细节。如果你的脚本在重新启动后仍然没有运行(不要简单地注销并重新登录),那么你的脚本有问题。也许再检查一下?

答案2

以 root 权限在编辑器中打开/etc/rc.local,并在该文件的行前添加要在启动时执行的命令exit 0

就你的情况而言

sh home/magpie/myfile.sh

答案3

有几种方法可以做到这一点;最简单的方法可能是按照以下说明进行操作这一页这个并在 .config 文件夹中创建一个名为 autostart 的文件夹,然后使用文本编辑器创建一个 .desktop 条目并将其保存在 autostart 文件夹中。桌面条目应包含以下行

  [Desktop Entry]
  Name=script.sh
  Exec=/home/mike/script.sh
  Type=Application
  Terminal=false

另一种方法是使用该rc.local文件:

通常,您需要将脚本的完整路径添加到rc.local处的文件/etc/rc.localrc.local只有在其他所有程序都启动后才执行,并且必须将其设置为可执行文件 ( sudo chmod +x)(如果尚未执行)。(由于脚本归 root 所有,因此必须使用 Sudo,这就是为什么有些人可能认为 root 启动用户脚本存在安全问题,但对于家庭桌面用户来说,使用此方法是合理的rc.local。)

但是,请确保将 保留exit 0为 rc.local 脚本的最后一行:例如,我的 rc.local 文件包含一个脚本和另外两个命令的位置。如果您想确保您的脚本由/bin/sh或运行/bin/bash,请将其放在路径前面;例如/bin/bash /home/mike/script

最后,使用sudo vi /etc/rc.localgksudo gedit /etc/rc.local编辑文件。

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing
# my script here
/bin/bash /home/mike/bin/script
exit 0

答案4

您刚才在以下行中使用了错误的路径/etc/xdg/lxsession/Lubuntu/autostart

@home/magpie/touchpad_settings.sh 

@被删除,其余部分作为 shell 命令执行。

它使用相对路径:

home/magpie/touchpad_settings.sh 

因此,如果当前工作目录是/home/magpie,则它运行的脚本是/home/magpie/home/magpie/touchpad_settings.sh

添加一个/来修复它,并确保脚本具有执行权限:

@/home/magpie/touchpad_settings.sh

(这@意味着如果它退出,它将重新启动。)

相关内容