Нужно запустить .sh от имени root при загрузке или войти

Еще новичок в Linux и работающем Ubuntu 12.10

У меня есть беспроводная флешка (ae2500), в которой есть известные проблемы, которые были частично решены с помощью ndiswrapper. Однако, чтобы использовать его, я должен запускать одни и те же сценарии при каждой перезагрузке, эффективно удаляя и переустанавливая драйвер. Я сделал файл .sh для запуска каждый раз, чтобы упростить его, но я должен каждый раз заходить в sudo.

Есть три решения, которые я ищу, и, хотя не все они необходимы для решения этой конкретной проблемы, я все же хотел бы знать их все в учебных целях.

  1. запускать сценарии или file.sh при загрузке (как и другие программы)
  2. запускать сценарии или file.sh автоматически с привилегиями root
  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
3
задан 20 January 2013 в 04:39

5 ответов

Чтобы получить файл для запуска при запуске, вы, по сути, хотите поместить .desktop в /etc/xdg/autostart/

Вот как настроить .desktop для вашего файла из командной строки:

sudo mv file.sh /usr/bin

Это перемещает путь файла оболочки к /usr/bin.

Затем перейдите к

/usr/share/applications

. Чтобы создать файл .desktop, введите

sudo -H gedit file.desktop & 

& amp; означает, что вы все еще можете использовать терминал, но оставить файл открытым. Удобно, если у тебя память о золотой рыбке, как у меня.

В gedit напишите:

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

Вы можете закрыть его сейчас, если хотите. Вы можете добавить его к значку, добавив также строку icon=path/to/icon, если вам это нравится.

Теперь, чтобы запустить этот файл при запуске, вам нужно сохранить его копию в

/etc/xdg/autostart/

Это должно работать, если скрипт (myfile.sh) уже работает, то есть. [ 1117]

0
ответ дан 20 January 2013 в 04:39

Вы можете попробовать поместить файл file.sh в /etc/init.d/ и использовать update-rc.d

update-rc.d file.sh defaults
.
0
ответ дан 20 January 2013 в 04:39

[Это - комбинация ответа сороки и моего собственного опыта.]

Чтобы заставить .sh сценарий (или любой другой сценарий) работать при начальной загрузке, Вы хотите;

  1. Положите свой сценарий на легкое доступное место (например, Ваш рабочий стол).
  2. Удостоверьтесь, что, если Вы щелкаете правой кнопкой по сценарию и переходите к свойствам на вкладке 'Permissions', это говорит в, 'Выполняются'; 'Любой'.
  3. Откройте leafpad или любой другой текстовый редактор и тип:

    [Desktop Entry]
    Name=yourScriptName
    Exec=/usr/bin/yourScript.sh
    Type=Application
    Terminal=false
    
  4. Хит Ctrl + S и как имя заполняют "scriptName.desktop" и сохраняют его на Вашем рабочем столе.
  5. Откройте терминал с Ctrl + Высокий звук + 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, и он работает отлично для меня,
Я надеюсь, что это было полезным и четким объяснением :).

Wessel

0
ответ дан 20 January 2013 в 04:39

У меня есть альтернативное предложение к другим ответам: используйте crontab

в качестве корневого запуска crontab и добавьте задание, похожее на это

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

Так я бы решил эту проблему. Я не готов сказать, что это лучше или хуже, чем другие ответы, и приветствую комментарии.

0
ответ дан 20 January 2013 в 04:39

Чтобы запустить его при входе в систему (я нахожусь на 12.04, так что это может немного отличаться), просто нажмите на меню в правом верхнем углу (с параметрами выключения) и нажмите «Запуск приложений»

.

Затем нажмите Add, дайте ему имя и описание и найдите местоположение скрипта bash. Выйдите из системы, затем снова включите ее, и она должна работать.

Если вы делаете это таким образом, я бы предложил изменить sudo на gksudo в вашем скрипте, чтобы он затем запрашивал привилегии sudo в хорошем графическом интерфейсе, а не просто сидел на терминале и просил его.

0
ответ дан 20 January 2013 в 04:39

Другие вопросы по тегам:

Похожие вопросы: