Я задаю вопрос после поиска в Google и пробовал несколько решений, но мне нужен конкретный ответ.
Я вошел в систему на другом компьютере с SSH, и мне нужно знать, что ОС используется на сервере или настольном компьютере.
Я пробовал следующую команду и ее результат:
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 12.04.5 LTS
Release: 12.04
Codename: precise
Вторая команда
cat /proc/version
Linux version 3.5.0-61-generic (buildd@toyol) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #90-Ubuntu SMP Sun Apr 26 11:23:53 UTC 2015
Совсем не повторяется с этой
Как проверить, установлен ли рабочий стол или сервер ubuntu?
Как упомянуто в связанном сообщении, не легко определить, используете ли Вы рабочий стол или выпуск сервера, потому что все пакеты могут быть установлены или удалены.
Вот моя функция, которую я использую для своих сценариев. В основном это проверяет, установлены ли xserver-распространенный или xwayland. Если один из них установлен, это означает настольная система.
#!/usr/bin/env bash
check_if_desktop (){
IS_DESKTOP="false"
displayManager=(
'xserver-common' # X Window System (X.Org) infrastructure
'xwayland' # Xwayland X server
)
for i in "${displayManager[@]}"; do
dpkg-query --show --showformat='${Status}\n' $i 2> /dev/null | grep "install ok installed" &> /dev/null
if [[ $? -eq 0 ]]; then
IS_DESKTOP="true"
fi
done
}
Вот несколько других вещей проверить:
По умолчанию выпуск сервера использует классика /etc/network/interfaces
, в то время как настольный выпуск работает с Администратором сети, таким образом проверьте, установлен ли Администратор сети
dpkg -l network-manager
Или выполняет команду nmcli (инструмент командной строки для NM), если Вы получаете сообщение как это:
The program 'nmcli' is currently not installed. You can install it by typing:
sudo apt-get install network-manager
вероятность высока, что Вы находитесь на выпуске сервера. Но имейте в виду, можно изменить сервер для работы с NM.
<час>Использование следующая команда, чтобы определить, установлены ли настольные компоненты
dpkg -l ubuntu-desktop
На Сервере, Вы получите сообщение как это:
dpkg-query: no packages found matching ubuntu-desktop
На Рабочем столе Вы получите сообщение, которое говорит Вам, какая версия установлена
<час>Проверка на другие пакеты, которые обычно находятся на рабочем столе:
dpkg -l unity (gnome, mate and so one) # Desktop environments
dpkg -l compiz (E17, fluxbox and so one) # Window manager
dpkg -l xorg # X window server
или использование:
dpkg-query --show --showformat='${Status}\n' *packagename* 2> /dev/null | grep "install ok installed"
проверка, если X-сервер работает:
ps -e | grep X
sudo netstat -lp | grep -i Xorg
<час> Проверка на сервисы, которые только доступны на рабочем столе:
Это зависит от Вашей версии Ubuntu, как проверить сервисы:
sudo service *servicename* status # on SysVinit
sudo status *servicename* # on Upstart
systemctl status *servicename*.service # on systemd
типичные сервисы:
и некоторые другие, которые связаны с определенными производными
<час>, Мое приложение зависит от распределения сервера
, Даже если не имеет никакого смысла запускать серверное приложение на настольном выпуске, не должно быть никаких проблем с установкой всех зависимостей для Вашего приложения на настольном выпуске и делать это работой.
можно ли уточнить это, почему это зависит от дистрибутива сервера?
необходимо попробовать следующий шаг 1: тип dpkg --list
, который это покажет Вам всем, установил пакеты (это будет много), шаг 2: прокрутите или вниз найти любого *-session пакетами, я полагаю, что они - источники рабочего стола
Удачи!