como executar a seqüência de comando na inicialização?

0

Eu preciso executar uma sequência de comandos na inicialização. Esta sequência também requer a senha de root. Como posso fazer isso?

Esta é, em particular, a sequência de comandos que preciso executar:

virginia@asus-F552CL:~$ cd MT7630E_Wi-Fi_BT_Source_Release_20140625/rt2x00/
virginia@asus-F552CL:~/MT7630E_Wi-Fi_BT_Source_Release_20140625/rt2x00$ sudo su
[sudo] password for virginia: 
root@asus-F552CL:/home/virginia/MT7630E_Wi-Fi_BT_Source_Release_20140625/rt2x00# ./load.sh
root@asus-F552CL:/home/virginia/MT7630E_Wi-Fi_BT_Source_Release_20140625/rt2x00# exit
virginia@asus-F552CL:~/MT7630E_Wi-Fi_BT_Source_Release_20140625/rt2x00$ 
    
por Donbeo 14.07.2014 / 18:48

2 respostas

0

Já que você mencionou ter que fazer sudo su, eu suponho que você queira que esses comandos sejam executados após o login.

Para fazer isso, você terá que colocar seus comandos em um arquivo de script, digamos, myCom.sh . O conteúdo seria semelhante abaixo:

cd MT7630E_Wi-Fi_BT_Source_Release_20140625/rt2x00/
echo myPassword | sudo -S su && sudo su -c ./load.sh

Observe que a saída não é necessária, pois cada comando é executado como raiz e o script retorna após a conclusão.

Além disso, "myPassword" deve ser fornecido em texto simples.

Use o gerenciador de inicialização do KDE / Ubuntu para iniciar este script. Ou você pode colocar esse arquivo diretamente em ~/.profile .

Por outro lado, se você quiser executar esses comandos na inicialização em vez de fazer login, poderá usar scripts de inicialização. Você não precisará usar sudo su lá, pois tudo será executado no contexto raiz.

    
por Ashish 14.07.2014 / 20:18
0

Você pode modificar seu arquivo /etc/rc.local que é executado como último serviço na sequência de inicialização do nível de execução e concede permissão de root.

Aqui está um exemplo:

#!/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.
cd /home/virginia/MT7630E_Wi-Fi_BT_Source_Release_20140625/rt2x00
/bin/bash load.sh
exit 0

Verifique sua alteração com este comando:

sudo /etc/init.d/rc.local start

Por favor, observe os seguintes pontos:

  1. load.sh será executado como raiz
  2. o ambiente é restrito, então você pode precisar definir variáveis ausentes
  3. se você quiser fazer login no syslog , use logger "message"

Se for possível, sugiro que você execute seu script assim:

  /bin/bash /home/virginia/MT7630E_Wi-Fi_BT_Source_Release_20140625/rt2x00/load.sh

No nível de execução do Ubuntu, quando ocorre o evento filesystem and static-network-up . Se você precisa iniciar o load.sh em determinado evento, então é melhor definir tarefa de inicialização .

    
por Lety 14.07.2014 / 22:18