У меня есть сценарий, который отлично работает, когда я помещаю его вручную в каталог / home / ubuntu
и выполняю вручную с правами sudo (он должен запускаться из каталога $ HOME).
Путь к сценарию:
/home/ubunt/script.sh
.. и выглядит так
#!/bin/bash
sudo add-apt-repository -y ppa:maas/3.0-next
sudo apt update
sudo apt install -y maas jq markdown nmap traceroute git curl wget zfsutils-linux cloud-image-utils virtinst qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils whois
sudo maas createadmin --username ubuntu --password password --email winnie@the.bear --ssh-import gh:wt-b
...
Я хочу, чтобы он запускался при входе в систему (один раз), и мне нужно видеть, что происходит (визуальная строка cmd).
Я уже проверил параметры в папке /etc/init.d
(а также в папке / lib / systemd / system
, где я активирую службу через systemctl) , вызывая сценарий через следующую командную строку
#!/bin/bash
gnome-terminal -e '/home/ubuntu/script.sh'
или без видимого интерфейса cmd
#!/bin/bash
source /home/ubuntu/script.sh
of, но он не работает и устанавливает только некоторые компоненты.
Есть идеи? Спасибо
Итак, я нашел решение с задачей запуска, упомянутой ванадием.
Но я подумал, что сделаю это немного более явным.
Я использую 3 файла:
Два находятся в папке /home/ubuntu/
/home/ubuntu/init.sh
И которая содержит
#!/bin/bash
gnome-terminal -- sudo '/home/ubuntu/script.sh'
/home/ubuntu/script.sh
,который содержит фактический код, который я хочу выполнить
#!/bin/bash
sudo add-apt-repository -y ppa:maas/3.0-next
sudo apt update
sudo apt install -y maas jq markdown nmap traceroute git curl wget zfsutils-linux cloud-image-utils virtinst qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils whois
sudo maas createadmin --username ubuntu --password password --email winnie@the.bear --ssh-import gh:wt-b
...
А затем нам нужно включить запускаемое приложение, поместив конфигурационный файл в папку /etc/xdg/autostart
3) /etc/xdg/autostart/conf.desktop
Который содержит следующую информацию:
[Desktop Entry]
Version=1.0
Name=LordofSpaghettis
Comment=Spaghettis are good
Exec=/home/ubuntu/init.sh
Path=/home/ubuntu/
Terminal=true
Type=Application
X-GNOME-Autostart-enabled=true
Categories=Utility;Development
Затем, когда я перезапускаю машину выхода из системы и снова вхожу в систему, я получаю приглашение спросить пароль sudo. И тогда все работает отлично. Спасибо ванадию за помощь.
Странная необходимость автоматически устанавливать пакеты снова и снова автоматически при входе в систему. Тем не менее, у вас могут быть веские причины.
Вы можете использовать «Автозагрузку приложений» для автоматического запуска терминала после входа в систему, который затем запускает ваш скрипт.
sudo
. Вы запустите весь сценарий как root. gnome-terminal - sudo
При входе в систему терминал запустится, и вы увидите приглашение ввести пароль sudo
. После ввода пароля скрипт запустится, и вывод появится в терминале.
Когда сценарий завершится, терминал закроется.Чтобы этого не произошло, вы можете добавить команду «bash», чтобы оболочка (и эмулятор терминала) оставалась открытой, или использовать приглашение, например
read -rsn1 =p $'Press a key to continue\n'