У меня есть AWS EC2 с запуском экземпляра Ubuntu Server 16.0.4, и я хочу убедиться, что сценарий выполняется каждый раз, когда экземпляр перезагружается или перезапускается Ubuntu. Я искал по всему Интернету, и это казалось очень легким - просто измените /etc/rc.local, и он должен работать. Я сделал это, и это не так.
/etc/rc.local file - удален -e в #!/bin/sh и только одна строка, которая выполняет скрипт (EDIT)
#!/bin/sh
#
# 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.
echo RC_LOCAL
sh /home/ubuntu/scripts/boot.sh
exit 0
Разрешения: -rwxr-xr-x 1 root root 339 Nov 7 10:04 rc.local
и мой boot.sh файл:
#!/bin/sh
echo SYSTEM_BOOT
~/xxx/xxx/xxx console &
sudo ./xxx/xxx/xxx.sh
permissions: -rwxrwxr-x 1 ubuntu ubuntu 92 Nov 7 09:17 boot.sh
Странно, что я могу запустить /etc/rc.local и boot.sh, и все походит на то, что я хотел, чтобы он был, но там он не выполняется, когда я запускаю sudo reboot и подключаюсь к AWS через SSH в следующий раз.
EDIT: After sudo reboot и соединение с помощью ssh: ➜ AWS ssh -i key.pem ubuntu@xx.xx.xx.xx Я получил:
`Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-1039-aws x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud
62 packages can be updated.
0 updates are security updates.
Last login: Tue Nov 7 10:22:38 2017 from 157.25.99.66`
ubuntu@ip-xx-xx-xx-xx:~$