Tips & tricks — Выполняем разные скрипты/команды при загрузке разных ядер/опций одного дистрибутива
Это скорее "микро how-to" нежели пост. Хочу поделится с сообществом способом с помощью которого я при загрузки системы запускаю разных демонов и службы в зависимости от того какие параметры указаны в опциях загрузки ядра в GRUB.
Для чего это нужно? У меня например домашняя машина работает и как сервер и как рабочая станция. Когда я использую ее как десктоп то я хочу загружать "иксы", pidgin, clawsmail. И совсем не хочу видеть все перечислительное когда компьютер работает как сервер. Зато хочу видеть FTP, Apache2, PHP, самбашару, радиус, и SSH сервер для удаленного входа.
Для начала посмотрим мой "конфиг" загрузчика:
Вот так выглядит пункт загрузки в обычном режиме (обратите внимание на восьмую строчку):
И вот так выглядит загрузка в "серверном режиме":
Как видите вся разница в появившемся параметре text который "говорит" ядру что не надо запускать "иксы", и что работать мы будем в терминале.
А дальше как говорится - "дело техники". В Ubuntu Linux и OpenSuse Linux ( в остальных не знаю, но думаю что так же или около того) с помощью команды:
Мы можем узнать строчку загрузки системы. Например в данный момент у меня она:
Немного подумав как лучше воспользоваться этой "фичей" я написал вот такой скриптик:
Принцип работы прост. При старте системы запускается файл rc.local ( не спрашивайте почему, это закон :) ) в котором в переменную $a записывается сколько раз слово "text" встречается в опциях загрузки ядра. И если это значение равно одному, то запускаются окружение "серверного варианта".
Раньше ( то есть вчера ) тут же выполнялись условия для старта "иксов" и запускались его приложения. Но я придумал другой, как мне кажется более "кошерный", способ запуска "иксовых" программ. Возможно расскажу о нем в следующий раз :-)
Для чего это нужно? У меня например домашняя машина работает и как сервер и как рабочая станция. Когда я использую ее как десктоп то я хочу загружать "иксы", pidgin, clawsmail. И совсем не хочу видеть все перечислительное когда компьютер работает как сервер. Зато хочу видеть FTP, Apache2, PHP, самбашару, радиус, и SSH сервер для удаленного входа.
Для начала посмотрим мой "конфиг" загрузчика:
cat /boot/grub/grub.cfg
Вот так выглядит пункт загрузки в обычном режиме (обратите внимание на восьмую строчку):
1 2 3 4 5 6 7 8 9 10 |
### BEGIN /etc/grub.d/10_linux ### |
И вот так выглядит загрузка в "серверном режиме":
1 2 3 4 5 6 7 8 9 10 11 |
menuentry 'Ubuntu, with terminal' { |
Как видите вся разница в появившемся параметре text который "говорит" ядру что не надо запускать "иксы", и что работать мы будем в терминале.
А дальше как говорится - "дело техники". В Ubuntu Linux и OpenSuse Linux ( в остальных не знаю, но думаю что так же или около того) с помощью команды:
cat /proc/cmdline
Мы можем узнать строчку загрузки системы. Например в данный момент у меня она:
1 2 3 |
[10:06]ivan@luntik:~$ cat /proc/cmdline |
Немного подумав как лучше воспользоваться этой "фичей" я написал вот такой скриптик:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
[10:06]ivan@luntik:~$ cat /etc/rc.local |
Принцип работы прост. При старте системы запускается файл rc.local ( не спрашивайте почему, это закон :) ) в котором в переменную $a записывается сколько раз слово "text" встречается в опциях загрузки ядра. И если это значение равно одному, то запускаются окружение "серверного варианта".
Раньше ( то есть вчера ) тут же выполнялись условия для старта "иксов" и запускались его приложения. Но я придумал другой, как мне кажется более "кошерный", способ запуска "иксовых" программ. Возможно расскажу о нем в следующий раз :-)