В настоящее время существует три разных способа запуска программного обеспечения в качестве службы в Ubuntu, SysV, Upstart и systemd. Служба здесь определена как программа, выполняемая системой в фоновом режиме, в отличие от запуска и запуска непосредственно пользователем.
Традиционный способ запуска служб в Linux должен был разместить сценарий в /etc/init.d, а затем использовать команду update-rc.d (или в дистрибутивах на основе RedHat, chkconfig), чтобы включить или отключить ее.
В этой команде используется немного сложная логика для создания символических ссылок в /etc/rc#.d, которые контролируют порядок запуска служб. Если вы запустите ls /etc/rc2.d, вы увидите порядок, в котором будут убиты службы с именем файла, например K##xxxx, и начнется с имен файлов S##xxxx. [F16] в S##xxxx означает «начальный порядок» для обслуживания xxxx. Наоборот, ## в K##xxxx означает порядок уничтожения для службы xxxx.
Одна из основных проблем с SysV заключалась в том, что при загрузке системы все должно было быть сделанные в последовательном порядке, одно за другим, что делает время загрузки системы очень медленным. Были предприняты попытки распараллелить это, но они были случайными и трудными в полной мере использовать. Это была основная причина создания Upstart.
Upstart использует файлы определения заданий в /etc/init для определения того, какие события должна запускаться служба. Таким образом, пока система загружается, выскочка обрабатывает различные события, а затем может запускать несколько служб параллельно. Это позволяет им полностью использовать ресурсы системы, например, путем запуска службы, связанной с диском, в то время как другая служба, связанная с процессором, запускается или пока сеть ожидает назначения динамического IP-адреса.
Вы можете просмотреть все файлы стартовых заданий, запустив ls /etc/init/*.conf
. Позвольте мне просто остановиться здесь и сказать, что, если вы не знаете, что такое служба или что она делает, НЕ отключите его!
Не все службы были преобразованы в выскочку. Во время работы над командой сервера в Canonical за последние несколько месяцев я работал над несколькими преобразованными файлами заданий, и самая приятная часть - это то, что он позволяет избавиться от всего скрипта «магия» и просто вставить несколько команд здесь и там, чтобы точно определить, как запустить службу, и не более того. На данный момент только несколько традиционных сетевых сервисов, таких как Upstart и Upstart , были преобразованы.
Чтобы выяснить, работает ли служба с выскочкой, вы можете запустить команду состояния:
status servicename
Если это выскочка, это покажет это: [!d20 ]
$ status statd
statd start/running, process 942
Но если это не так, вы увидите нечто подобное:
$ status apache2
status: Unknown job: apache2
В этом случае apache2 не был преобразован в upstart [!d21 ]. Таким образом, чтобы отключить apache2, вы просто запускаете
sudo update-rc.d apache2 disable
sudo service apache2 stop
У определений заданий стартового разряда нет команды update-rc.d. Чтобы отключить задание, вам нужно отредактировать файл задания напрямую, чтобы отключить его. Есть два способа сделать это.
Если вы хотите по-прежнему запустить его вручную, вам нужно прокомментировать условие start on. Предположим, вы хотите установить samba, но не запускайте его автоматически. Вот файл задания (в natty):
description "SMB/CIFS File Server"
author "Steve Langasek <steve.langasek@ubuntu.com>"
start on local-filesystems
stop on runlevel [!2345]
respawn
pre-start script
RUN_MODE="daemons"
[ -r /etc/default/samba ] && . /etc/default/samba
[ "$RUN_MODE" = inetd ] && { stop; exit 0; }
install -o root -g root -m 755 -d /var/run/samba
end script
exec smbd -F
Чтобы отключить samba , вы можете просто поставить # перед «start on local-filesystems». Обратите внимание, что, хотя он не будет запускаться при загрузке, вам все равно нужно остановить его на этот раз с помощью
sudo service smbd stop
Если, однако, вы никогда не хотите, чтобы samba запускался, я бы предложил фактически удалить пакет. Если вы хотите, чтобы он был установлен, но не был запущен, вы также можете:
mv /etc/init/smbd.conf /etc/init/smbd.conf.disabled
Начиная с версия выскочка, которая будет в 11.04, появляется новое ключевое слово, которое отключает строфы start on и stop on: manual. Таким образом, еще один способ отключить службу с 11.04:
echo 'manual' | sudo tee /etc/init/mysql.override
# command from root shell
echo manual >> /etc/init/mysql.override
Вы можете создать файл override, чтобы отключить службу без редактирования определения задания вообще, просто поместив manual ключевое слово в нем.
В Ubuntu есть набор сочетаний клавиш для скриншотов.
Перейдите в раздел «Системные настройки»> «Клавиатура»> «Ярлыки»> «Скриншоты». В моем случае это Ctrl+Shift+Print_Screen
Для Gnome копирование части экрана в буфер обмена - Ctrl + Shift + PrtScrn.