Как я могу программным образом определить, является ли система рабочим столом или сервером?

Есть ли способ отличить Ubuntu Server от Ubuntu Desktop?

У меня есть сценарий Bash ( бесстыдный плагин ), который я использую для создания облегченных веб-серверов, и я заметил, что когда я запускаю этот скрипт на своем собственном компьютере, моя установка Ubuntu (Desktop) становится все испорченной – я довольно убедитесь, что виновником являются следующие строки кода:

echo -e "\e[1;32mDave, I'm removing the bloatware.\e[0m" for halBox_package in apache2 bind9 nscd php portmap rsyslog samba sendmail; do if [[ -f /etc/init.d/$halBox_package ]]; then ( service $halBox_package stop ) > /dev/null fi ( apt-get -qq -y remove --purge "$halBox_package*" ) > /dev/null 2>&1 done 

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

команда

 dpkg -l ubuntu-desktop 

Результат:

 Желаемая = Неизвестный / Установка / удаление / Purge / Удержание
 |  Статус = Не / Inst / Conf-файлы / Распакованный / HALF-конф / Half-инст / аккуратный-ОЖИДАНИЕ / Триг-ПЭНД
 | / Err? = (None) / Требуется восстановление (Status, Err: uppercase = bad)
 || / Название Версия Архитектура Описание
 +++ - ============== - ============ - ============ - ===== ============================
 ii ubuntu-desktop 1.287 i386 Настольная система Ubuntu

  - Элемент списка

Предостережение

Он не будет работать, если кто-то установит рабочий стол без использования ubuntu-desktop. Но кто это делает?

Документация

  • До 12.04 сервер Ubuntu по умолчанию устанавливает серверное оптимизированное ядро. Начиная с 12.04, нет разницы в ядре между Ubuntu Desktop и Ubuntu Server, так как linux-image-сервер сливается с linux-image-generic.