Записи меню создаются из .desktop-файлов. Там можно указать, нужно ли значок только показать в Gnome, только в KDE или в обоих с, например, строке OnlyShowIn=KDE.
Для сокрытия всех KDE-приложений Вы могли бы сделать как корень
cd /usr/share/applications/kde4/
for i in *.desktop; do echo “OnlyShowIn=KDE” >> $i; done
Для сокрытия Приложений Gnome в KDE повторите “OnlyShowIn=GNOME” в .desktop-файлы Gnome.
Однако, когда обновление пакета прибывает, это могло переопределить это, таким образом, Вы могли бы для повторения его, например, с заданием крона. Сделайте резервное копирование/usr/share/applications/kde4/прежде, чем сделать это, чтобы быть безопасными, если что-то идет не так, как надо.
Для списка всей информации, которая может быть включена в .desktop-файл, см. http://standards.freedesktop.org/desktop-entry-spec/latest/ar01s05.html
Ни один. Если Вы хотите иметь его, ведут себя правильно как настоящий демон, необходимо поместить его с помощью init системы - /etc/init.d
(и сделайте соответствующие ссылки runlevel в соответствующем /etc/rc.X
папки)
Запустите поиск или взгляните на что-то вроде этого: https://serverfault.com/questions/204695/comprehensive-guide-to-init-d-scripts
Предположение, что Вы пишете сетевому демону, самый легкий путь, должно было бы записать Вашу программу C для взаимодействия через интерфейс к xinetd
/inetd
и покиньте луг демона xinetd
/inetd
инструмент.
Если пользователь хочет написать что-то для прослушивания сетевой службы, которую вы не хотите запускать постоянно, а только по мере необходимости, вам, вероятно, лучше всего запускать ее под inetd/xinetd, связать ее с соответствующим портом. и запустить его таким образом.
Файл init.d, также известный как «службы» в различных разновидностях *NIX, предназначен для запуска программ, предназначенных для работы на разных уровнях выполнения (, например, запуск, завершение работы, одиночный -пользователь., многопользовательская -, с сетью, без, с графическим интерфейсом и т. д. ). Эти службы предназначены для непрерывной работы независимо от того, осуществляется к ним доступ или нет (, например, как база данных ).
Например, база данных будет запущена/остановлена с помощью init.d/services/systemctl, поэтому у нее будут сценарии, которые будут запускать ее при запуске нескольких -пользователей и сети, и у нее будет соответствующий сценарий, который будет выключите его должным образом во время процесса выключения до отключения сети. Эти скрипты помещаются в /etc/init.d/ и связаны с правильным -уровнем запуска (/etc/init.d/rc2.d = runlevel2, rc3.d = runlevel 3 и т. д. ). Вы можете определить различные возможные уровни запуска -, просмотрев файл «/etc/inittab». Вы можете увидеть, на каком уровне запуска вы находитесь, набрав «уровень запуска» или «время безотказной работы» в зависимости от вашего варианта *NIX. База данных будет работать, даже если никто не будет подключен к ней из сети или локально.
Но если у вас есть что-то небольшое, например демон telnet, демон finger, демон whois и т. д.,которые более тесно связаны с поведением ОС, и вы не хотите, чтобы они постоянно находились в памяти, только когда это необходимо, вы можете запускать их в inetd/xinetd. По сути, inetd/xinetd — это «суперсервер», и когда он видит соединение определенного типа на определенном порту, он запускает демон для обработки этого сообщения, а затем повторно -появляется на отдельном порту и, когда все готово, выходит. Таким образом, вы можете создавать сотни, тысячи процессов для обработки соединений на основе доступных системных ресурсов.
Если вы хотите запустить свою программу на языке C как «службу» с уровнем запуска -, вам следует написать свою программу для выполнения ее функции, а затем написать сценарий, который поддерживает аргумент остановки и аргумент остановки.. Затем вы поместите этот скрипт в /etc/init.d/. Затем вы должны сделать символическую ссылку на этот сценарий в соответствующих каталогах уровня запуска -(, например, rc3.d ), и эта символическая ссылка для запуска будет либо начинаться с заглавной буквы «S», что означает, что она активна и должна запускаться во время запуска, за которым сразу следует число, такое как «01», если вы хотите, чтобы оно выполнялось раньше всего на этом уровне выполнения, или «99», если вы хотите, чтобы оно выполнялось последним на этом уровне выполнения -. Причина, по которой это важно, заключается в том, что вы не хотели бы запускать службу, которая зависит от другой службы, такой как DNS, NFS или даже сеть, и они будут недоступны. Вы хотели бы дать ему число ПОСЛЕ того, как эти процессы начнутся. Когда система вызывает ваш скрипт S99domything, она передает слово "start" в качестве аргумента #1, и внутри вашего скрипта у вас должен быть переключатель -case, который при выборе "start" запускает ваш процесс. Если вы хотите отключить свой скрипт, но не удалять его, переименуйте его так, чтобы он начинался со строчной буквы «s» (, например, «s99domything» ).
Аналогичным образом, для упорядоченного завершения вашего процесса вы должны поставить 'K' перед символической ссылкой на скрипт /etc/init.d/domything, такой как K01domything. Сейчас,если вам нужно, чтобы ваш сценарий запускался ПОСЛЕ какого-либо другого процесса, когда вы хотите, чтобы он был закрыт, он, вероятно, должен завершить работу ДО этого другого процесса. Так что, если вы запускаете S99domything, то ваше закрытие вполне может быть K01domything. И когда процесс инициализации находит сценарий, начинающийся с буквы K, он отправляет первый аргумент как «стоп» при вызове сценария. В вашем скрипте должен быть случай «стоп», который правильно отключает вашу службу.
Довольно умно.
Вот почему так важно использовать /sbin/shutdown, потому что он заставляет init пройти надлежащую последовательность запуска/завершения, чтобы все обрабатывалось «упорядоченным» образом, уменьшая потерю или повреждение данных.
Некоторые примеры:
/etc/rc3.d/S25mysql is a symlink to /etc/init.d/mysql.sh
/etc/rc5.d/K01mysql is a symlink to /etc/init.d/mysql.sh
В обоих случаях символические ссылки указывают на один и тот же файл /etc/init.d, но когда процесс инициализации запускает их, он передает «старт» или «стоп» в зависимости от того, был ли первый символ «S» или "К".
Надеюсь, это поможет объяснить несколько вещей, которые согласуются с небольшими вариациями почти во всех версиях *NIX.
В более современных версиях *NIX inetd/xinetd потерял популярность вместо использования systemctl/services. Это позор, потому что он имел свое место, был надежным и простым в использовании. Вы можете увидеть, что все различные порты были назначены на протяжении многих лет, просмотрев /etc/services. Любой порт 1024 или ниже должен обслуживаться корневым процессом -.
Ура! -Д
/path/to/my/binary &
например./usr/local/bin/newbie14program &
выполнение его от крона будет также работать:@reboot /usr/local/bin/newbie14program
– Folkert van Heusden 12.12.2011, 11:12/etc/init.d
-ls
каталог, должен всегда быть своего рода подобный README файл там для установки init сценария. Если это не демон, то/etc/rc.local / crontab @reboot должен хорошо работать, необходимо будет установить путь в этих файлах в большинстве случаев. – thinice 12.12.2011, 16:58