Intereting Posts
Как я могу перечислить LS_COLORS в цвете? Как скопировать определенное количество отсортированных файлов? (например, 11 ГБ) Что должны делать интерактивные оболочки в сиротских группах процессов? CUPS – HP Photosmart C4280 Как изменить группу пользователей по умолчанию в Linux? fvwm, gtk и xombrero: поля ввода – белый текст на белом фоне Как извлечь часть имени файла в сценарий оболочки unix / linux / etc / shadow дата последнего смены пароля – UTC или местное время? Expect script: удалить пароль в закрытом ключе Преобразовать ключ: значение парных блоков данных в файл csv Courier IMAP – каталог почтовых ящиков учетной записи не принадлежит правильному uid или gid Как сделать резервную копию файлов с минимальной системой спасения? Случайное масштабирование Google Chrome Любой способ зарегистрировать исходное программное обеспечение с базой данных rpm / yum? USB-сенсорный экран не работает с debian 3.8.13 (BeagleBone Black)

Как выполнить команду / скрипт один раз после перезагрузки

На Centos6 у меня есть этот скрипт, и мне нужно выполнить его один раз после перезагрузки в терминале.
Как я могу это сделать?
Если я выполняю как sh /path/to/script.sh – все хорошо, но если я добавлю в rc.local ( sh /path/to/script.sh ) или crontab ( @reboot sh /path/to/script.sh )- Ничего не произошло.
Буду рад любой помощи.

 #!/bin/bash gnome-terminal -x sh -c 'zenity --info --text="Msg1" --title="Text1..." --timeout=10  zenity --info --text="Msg2" --title="Text2..." --timeout=10  zenity --info --text="Msg3" --title="Reboot..." --timeout=10 sleep 1 exec bash' 

    Gnome Terminal – это приложение X (приложение с графическим интерфейсом). Если вы хотите запустить какое-либо приложение X из cron, просто «сообщите ему», какой дисплей вы используете, поскольку cron не выполняет команды в обычной среде оболочки.

    Прежде всего определите, какой дисплей используется в вашей системе:

     echo $DISPLAY 

    Результат будет примерно таким:

     :0 

    или же

     :1 

    Давайте предположим, что ваша переменная DISPLAY :1 , затем добавьте в ваш скрипт перед командой с приложением GUI переменную DISPLAY=:1 , то есть:

     #!/bin/bash DISPLAY=:1 gnome-terminal -x sh -c 'zenity --info --text="Msg1" --title="Text1..." --timeout=10;;zenity --info --text="Msg2" --title="Text2..." --timeout=10;;zenity --info --text="Msg3" --title="Reboot..." --timeout=10;sleep 1; exec bash' 

    Помимо cron в CentOS есть еще одна возможность запустить что-то один раз при запуске системы – механизм обслуживания rc-local . Создать (если он еще не создан) файл:

     /etc/rc.d/rc.local 

    с содержанием:

     #!/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. /path/to/script.sh exit 0 

    Поместите в файл все команды, которые вы хотите выполнить при запуске.

    Сделайте файл rc.local исполняемым:

     chmod +x /etc/rc.d/rc.local 

    Включите rc-local сервис rc-local и запустите его:

     systemctl enable rc-local systemctl start rc-local 

    Проверьте, правильно ли работает служба:

     systemctl status rc-local