Запустите bash-скрипт при перезагрузке или завершении работы вместо запуска или мгновенно - PullRequest
0 голосов
/ 16 октября 2019

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

#!/usr/bin/env bash

# Get the Serial Number of the Machine
sn=$(system_profiler SPHardwareDataType | awk '/Serial/ {print $4}')

# Set the ComputerName, HostName and LocalHostName
scutil --set ComputerName $sn

scutil --set HostName $sn

scutil --set LocalHostName $sn

fi

1 Ответ

0 голосов
/ 16 октября 2019

Используйте для этого crontab. Если это системный процесс в вашем bash-скрипте, я бы использовал команду sudo при редактировании crontab, чтобы убедиться, что правильный пользователь выполняет задание cron. В этом случае root выполнит ваш bash-скрипт. Самый простой способ - создать bash-файл там, где вы хотите, чтобы он находился, что имеет смысл - IE

/etc/my_reboot_crons/checkSerial.sh

Затем используйте следующую команду для редактирования вашего crontab -

sudo crontab -e

Если вы никогда не использовали его раньше, вам будет задан вопрос, какой редактор вы хотите использовать (я выбираю VIM), наиболее предпочтительным является Nano для простоты использования.

Вставьте следующую строку:

@reboot bash /etc/my_reboot_crons/checkSerial.sh

ИЛИ, если вы не хотите, чтобы /var/mail/root заполнялся выходными данными команды, вы можете использовать

 @reboot bash /etc/my_reboot_crons/checkSerial.sh > /dev/null 2>&1

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

Вот ССЫЛКА , чтобы помочьознакомиться с crontab

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...