需要在启动或登录时以root身份运行.sh

还是新的linux和运行ubuntu 12.10

我有一个无线棒(ae2500)已知已使用ndiswrapper部分解决的问题。 但是,要使用它,我必须每次重新启动时运行相同的脚本,有效地卸载并重新安装驱动程序。 我每次都运行.sh文件以使其变得简单,但我必须每次都进行sudo登录。

我正在寻找三种解决方案,虽然并非所有这些都是解决这一特定问题的必要条件,但我仍然希望将它们全部用于学习目的。

  1. 在启动时运行脚本或file.sh(以及其他程序)
  2. 使用root权限自动运行脚本或file.sh
  3. 使安装永久化,以便每次都不必完成整个过程。

任何可以帮助我解决这个问题的其他信息(包括简化我的命令)或一般知识都将非常感激。 以下是该文件的内容。 我几乎就是按照我原来的方式做到的。

cd ~/ndiswrapper-1.58rc1 sudo modprobe -rf ndiswrapper sudo rm /etc/modprobe.d/ndiswrapper.conf sudo rm -r /etc/ndiswrapper/* sudo depmod -a sudo make uninstall sudo make sudo make install sudo ndiswrapper -i bcmwlhigh5.inf ndiswrapper -l sudo modprobe ndiswrapper 

要在启动时获取文件,您基本上想将.desktop放在/etc/xdg/autostart/

以下是如何从命令行为您的文件设置.desktop:

 sudo mv file.sh /usr/bin 

这会将shell文件路径移动到/usr/bin

然后去

 /usr/share/applications 

Nextyou想要创建一个.desktop文件,以便您输入

 sudo -H gedit file.desktop & 

&表示您仍然可以使用终端但保持文件打开。 如果你有像我一样的金鱼记忆,那就很方便。

在gedit中写道:

 [Desktop Entry] Name=myfileName Exec=/usr/bin/file.sh Type=Application Terminal=false 

如果你愿意,你现在可以关闭它。 你可以通过添加线icon=path/to/icon来添加icon=path/to/icon如果这看起来很花哨的话。

现在要让这个文件在启动时运行,你需要保存它的副本

 /etc/xdg/autostart/ 

如果脚本(myfile.sh)已经工作,那应该可以工作。

您可以尝试将file.sh放在/etc/init.d/中并使用update-rc.d

 update-rc.d file.sh defaults 

要在登录时运行它(我在12.04,所以这可能会略有不同),只需单击右上角的菜单(使用关闭选项),然后单击启动应用程序…

然后单击Add ,为其命名和描述,并浏览到bash脚本的位置。 注销,然后重新开启它应该工作。

如果您这样做,我建议您在脚本中将sudo更改为gksudo ,以便它在一个漂亮的GUI中请求sudo权限,而不是只是坐在终端上要求它。

我对其他答案有另一种建议:使用crontab

以root身份运行crontab并添加这样的工作

@reboot / path / to / your / script

http://en.wikipedia.org/wiki/Cron#Predefined_scheduling_definitions

这就是我要解决这个问题的方法。 我不准备说它比其他答案更好或更差,并欢迎评论。

[这是喜鹊的答案和我自己的经验的结合。]

要使.sh脚本(或任何其他脚本)在启动时运行,您需要;

  1. 将脚本放在易于访问的位置(例如桌面)。
  2. 如果右键单击脚本并转到属性,请确保在“权限”选项卡中显示“执行”; ‘任何人’。
  3. 打开leafpad或任何其他文本编辑器并键入:

     [Desktop Entry] Name=yourScriptName Exec=/usr/bin/yourScript.sh Type=Application Terminal=false 
  4. 按Ctrl + S并按名称填写“scriptName.desktop”,并将其保存在桌面上。
  5. 使用Ctrl + Alt + T打开终端。
  6. 类型:

     cd ~/Desktop 

    〜意味着回家,现在应该说:

     userName@computerName:~/Desktop$ 
  7. 然后:

     sudo mv yourScript.sh /usr/bin 

(通常建议将它放在/usr/local/bin以便可以直接使用命令yourScript.sh而不是“/ path / to / script”执行它。

  sudo cp scriptName.desktop /usr/share/applications sudo mv scritptName.desktop /etc/xdg/autostart 

而已!

我在lubuntu 17.04上,它对我很有用,
我希望这是一个有用而明确的解释:)。

韦塞尔