Я действительно смотрел на это сегодня, и короткий ответ - нет. Хакерное обходное решение - запустить gnome-панель с апплетом workspace-switcher. Этот апплет предоставляет параметр для количества строк рабочих пространств, поэтому вы можете создать макет сетки.
Раньше у меня был хак, который был демоном, работающим в фоновом режиме, который обрабатывал бы это для меня, поэтому Мне не нужен апплет для переключателя рабочего пространства. Однако это не работает. Однако я скоро переписал его, чтобы он снова работал с GNOME 3.x и использовал dconf / gsettings. Он будет настраиваться только после редактирования настроек напрямую, используя инструмент командной строки gsettings или dconf-editor.
Я не помню, чтобы увидеть шаблон для этого. Его немного иронично, однако, технически, его выскочка, которая запускает ваш скрипт init.d в первую очередь благодаря работе обратной совместимости rc и rcS.
Я бы подумал о том, чтобы переписать все, что у вас есть, как однако, я знаю, что некоторые скрипты трудно конвертировать, поэтому вот что я сделал некоторое время на некоторых моих скриптах:
description "xyz"
author "xyz"
start on runlevel 5
stop on runlevel [!5]
pre-start script
# do my work here to start the service
end script
post-stop script
# do work here to stop the service
end script
Теперь, в зависимости от характера сервиса, независимо от того, сохраняется или развивается сама по себе, вам может потребоваться добавить expect fork или task в файл задания.
Как раз для того, чтобы завершить эту мысль, обычно это все, что есть в любом случае. Вся предварительная работа выполнена, вся очистка завершена, единственное, что осталось, это сама служба, которая обычно добавляется:
exec service_cmd
Я не помню, чтобы увидеть шаблон для этого. Его немного иронично, однако, технически, его выскочка, которая запускает ваш скрипт init.d в первую очередь благодаря работе обратной совместимости rc и rcS.
Я бы подумал о том, чтобы переписать все, что у вас есть, как однако, я знаю, что некоторые скрипты трудно конвертировать, поэтому вот что я сделал некоторое время на некоторых моих скриптах:
description "xyz"
author "xyz"
start on runlevel 5
stop on runlevel [!5]
pre-start script
# do my work here to start the service
end script
post-stop script
# do work here to stop the service
end script
Теперь, в зависимости от характера сервиса, независимо от того, сохраняется или развивается сама по себе, вам может потребоваться добавить expect fork или task в файл задания.
Как раз для того, чтобы завершить эту мысль, обычно это все, что есть в любом случае. Вся предварительная работа выполнена, вся очистка завершена, единственное, что осталось, это сама служба, которая обычно добавляется:
exec service_cmd
Я не помню, чтобы увидеть шаблон для этого. Его немного иронично, однако, технически, его выскочка, которая запускает ваш скрипт init.d в первую очередь благодаря работе обратной совместимости rc и rcS.
Я бы подумал о том, чтобы переписать все, что у вас есть, как однако, я знаю, что некоторые скрипты трудно конвертировать, поэтому вот что я сделал некоторое время на некоторых моих скриптах:
description "xyz"
author "xyz"
start on runlevel 5
stop on runlevel [!5]
pre-start script
# do my work here to start the service
end script
post-stop script
# do work here to stop the service
end script
Теперь, в зависимости от характера сервиса, независимо от того, сохраняется или развивается сама по себе, вам может потребоваться добавить expect fork или task в файл задания.
Как раз для того, чтобы завершить эту мысль, обычно это все, что есть в любом случае. Вся предварительная работа выполнена, вся очистка завершена, единственное, что осталось, это сама служба, которая обычно добавляется:
exec service_cmd
Я не помню, чтобы увидеть шаблон для этого. Его немного иронично, однако, технически, его выскочка, которая запускает ваш скрипт init.d в первую очередь благодаря работе обратной совместимости rc и rcS.
Я бы подумал о том, чтобы переписать все, что у вас есть, как однако, я знаю, что некоторые скрипты трудно конвертировать, поэтому вот что я сделал некоторое время на некоторых моих скриптах:
description "xyz"
author "xyz"
start on runlevel 5
stop on runlevel [!5]
pre-start script
# do my work here to start the service
end script
post-stop script
# do work here to stop the service
end script
Теперь, в зависимости от характера сервиса, независимо от того, сохраняется или развивается сама по себе, вам может потребоваться добавить expect fork или task в файл задания.
Как раз для того, чтобы завершить эту мысль, обычно это все, что есть в любом случае. Вся предварительная работа выполнена, вся очистка завершена, единственное, что осталось, это сама служба, которая обычно добавляется:
exec service_cmd
Я не помню, чтобы увидеть шаблон для этого. Его немного иронично, однако, технически, его выскочка, которая запускает ваш скрипт init.d в первую очередь благодаря работе обратной совместимости rc и rcS.
Я бы подумал о том, чтобы переписать все, что у вас есть, как однако, я знаю, что некоторые скрипты трудно конвертировать, поэтому вот что я сделал некоторое время на некоторых моих скриптах:
description "xyz"
author "xyz"
start on runlevel 5
stop on runlevel [!5]
pre-start script
# do my work here to start the service
end script
post-stop script
# do work here to stop the service
end script
Теперь, в зависимости от характера сервиса, независимо от того, сохраняется или развивается сама по себе, вам может потребоваться добавить expect fork или task в файл задания.
Как раз для того, чтобы завершить эту мысль, обычно это все, что есть в любом случае. Вся предварительная работа выполнена, вся очистка завершена, единственное, что осталось, это сама служба, которая обычно добавляется:
exec service_cmd
Я не помню, чтобы увидеть шаблон для этого. Это немного иронично, однако, что технически, его выскочка, которая запускает ваш скрипт init.d, в первую очередь благодаря работе обратной совместимости rc и rcS.
Я хотел бы переписать все, что у вас есть, как однако, я знаю, что некоторые скрипты трудно конвертировать, поэтому вот что я сделал некоторое время на некоторых моих скриптах:
описание «xyz» автор «xyz» начинается с уровня запуска 5 stop on runlevel [! 5] сценарий предварительного запуска # сделайте мою работу здесь, чтобы запустить скрипт пост-стоп-скрипта для завершения работы службы #, работающий здесь, чтобы остановить скрипт конца службы
Теперь в зависимости о характере службы, независимо от того, сохраняется ли она или вилки, вам может потребоваться добавить ожидание fork
или task
в файл задания.
Просто для завершения мысли, как правило, это все, что есть в любом случае. Выполняется вся предварительная работа, выполняется вся очистка, единственное, что осталось, это сама служба, которая обычно добавляется:
exec service_cmd
Я не помню, чтобы увидеть шаблон для этого. Это немного иронично, однако, что технически, его выскочка, которая запускает ваш скрипт init.d, в первую очередь благодаря работе обратной совместимости rc и rcS.
Я хотел бы переписать все, что у вас есть, как однако, я знаю, что некоторые скрипты трудно конвертировать, поэтому вот что я сделал некоторое время на некоторых моих скриптах:
описание «xyz» автор «xyz» начинается с уровня запуска 5 stop on runlevel [! 5] сценарий предварительного запуска # сделайте мою работу здесь, чтобы запустить скрипт пост-стоп-скрипта для завершения работы службы #, работающий здесь, чтобы остановить скрипт конца службы
Теперь в зависимости о характере службы, независимо от того, сохраняется ли она или вилки, вам может потребоваться добавить ожидание fork
или task
в файл задания.
Просто для завершения мысли, как правило, это все, что есть в любом случае. Выполняется вся предварительная работа, выполняется вся очистка, единственное, что осталось, это сама служба, которая обычно добавляется:
exec service_cmd
Я не помню, чтобы увидеть шаблон для этого. Это немного иронично, однако, что технически, его выскочка, которая запускает ваш скрипт init.d, в первую очередь благодаря работе обратной совместимости rc и rcS.
Я хотел бы переписать все, что у вас есть, как однако, я знаю, что некоторые скрипты трудно конвертировать, поэтому вот что я сделал некоторое время на некоторых моих скриптах:
описание «xyz» автор «xyz» начинается с уровня запуска 5 stop on runlevel [! 5] сценарий предварительного запуска # сделайте мою работу здесь, чтобы запустить скрипт пост-стоп-скрипта для завершения работы службы #, работающий здесь, чтобы остановить скрипт конца службы
Теперь в зависимости о характере службы, независимо от того, сохраняется ли она или вилки, вам может потребоваться добавить ожидание fork
или task
в файл задания.
Просто для завершения мысли, как правило, это все, что есть в любом случае. Выполняется вся предварительная работа, выполняется вся очистка, единственное, что осталось, это сама служба, которая обычно добавляется:
exec service_cmd
Я не помню, чтобы увидеть шаблон для этого. Это немного иронично, однако, что технически, его выскочка, которая запускает ваш скрипт init.d, в первую очередь благодаря работе обратной совместимости rc и rcS.
Я хотел бы переписать все, что у вас есть, как однако, я знаю, что некоторые скрипты трудно конвертировать, поэтому вот что я сделал некоторое время на некоторых моих скриптах:
описание «xyz» автор «xyz» начинается с уровня запуска 5 stop on runlevel [! 5] сценарий предварительного запуска # сделайте мою работу здесь, чтобы запустить скрипт пост-стоп-скрипта для завершения работы службы #, работающий здесь, чтобы остановить скрипт конца службы
Теперь в зависимости о характере службы, независимо от того, сохраняется ли она или вилки, вам может потребоваться добавить ожидание fork
или task
в файл задания.
Просто для завершения мысли, как правило, это все, что есть в любом случае. Выполняется вся предварительная работа, выполняется вся очистка, единственное, что осталось, это сама служба, которая обычно добавляется:
exec service_cmd
Я не помню, чтобы увидеть шаблон для этого. Это немного иронично, однако, что технически, его выскочка, которая запускает ваш скрипт init.d, в первую очередь благодаря работе обратной совместимости rc и rcS.
Я хотел бы переписать все, что у вас есть, как однако, я знаю, что некоторые скрипты трудно конвертировать, поэтому вот что я сделал некоторое время на некоторых моих скриптах:
описание «xyz» автор «xyz» начинается с уровня запуска 5 stop on runlevel [! 5] сценарий предварительного запуска # сделайте мою работу здесь, чтобы запустить скрипт пост-стоп-скрипта для завершения работы службы #, работающий здесь, чтобы остановить скрипт конца службы
Теперь в зависимости о характере службы, независимо от того, сохраняется ли она или вилки, вам может потребоваться добавить ожидание fork
или task
в файл задания.
Просто для завершения мысли, как правило, это все, что есть в любом случае. Выполняется вся предварительная работа, выполняется вся очистка, единственное, что осталось, это сама служба, которая обычно добавляется:
exec service_cmd
Таким образом, одно из заданий upstart должно быть простым для записи.
В сценариях init.d много скриптов скриптов, которые повторяются снова и снова. Операторы case, отслеживание pidfile, строки комментариев lsb. Неясно, как написать ХОРОШИЙ скрипт init.d, не прочитав его.
Если вы уже столкнулись с проблемой написания всего этого, вам не нужна работа с выскочкой, если только , как я уже упоминал в другом комментарии, вы зависите от другой стартовой работы / события.
Но на самом деле выскочка делает вещи очень простыми. Вам не нужен предварительный старт, если вам не нужно настраивать такие вещи, как tmpdirs, ulimits или runtime. Вам не нужно использовать пост-стоп, если вы не захотите убедиться, что вы убираете его после службы (служба действительно должна очищаться после себя при обычном выходе).
Часто гигантский init.d сценарий с множеством вариантов сводится к 10-15-строчной выскочке. Самые сложные скрипты init.d могут иметь большую часть своей логики, сбрасываемой в pre-start. Ключ в том, что это всего лишь небольшой фрагмент кода для настройки среды для процесса, а не логика при обработке start / stop / respawn / etc.
Самая сложная часть и то, что люди получают неправильно, чаще всего, знает, когда начинать / останавливать свою работу. start on runlevel [2345] кажется логичным, но игнорирует тот факт, что в этой точке сеть идет параллельно, как и локальная файловая система. Ключ должен попытаться точно определить минимальные необходимые вам вещи (другие сервисы, файловые системы, сеть и т. Д.), Чтобы начать работать и начать, когда это будет сделано. Большинство традиционных сетевых сервисов должны делать start on (local-filesystems and net-device-up IFACE!=lo).
Я думал, что Upstart поддерживает обратную совместимость с скриптами инициализации SysV в /etc/init.d. Вы должны иметь возможность использовать сценарии init без изменений.
Я думал, что Upstart поддерживает обратную совместимость с скриптами инициализации SysV в /etc/init.d. Вы должны иметь возможность использовать сценарии init без изменений.
Таким образом, одно из заданий upstart должно быть простым для записи.
В сценариях init.d много скриптов скриптов, которые повторяются снова и снова. Операторы case, отслеживание pidfile, строки комментариев lsb. Неясно, как написать ХОРОШИЙ скрипт init.d, не прочитав его.
Если вы уже столкнулись с проблемой написания всего этого, вам не нужна работа с выскочкой, если только , как я уже упоминал в другом комментарии, вы зависите от другой стартовой работы / события.
Но на самом деле выскочка делает вещи очень простыми. Вам не нужен предварительный старт, если вам не нужно настраивать такие вещи, как tmpdirs, ulimits или runtime. Вам не нужно использовать пост-стоп, если вы не захотите убедиться, что вы убираете его после службы (служба действительно должна очищаться после себя при обычном выходе).
Часто гигантский init.d сценарий с множеством вариантов сводится к 10-15-строчной выскочке. Самые сложные скрипты init.d могут иметь большую часть своей логики, сбрасываемой в pre-start. Ключ в том, что это всего лишь небольшой фрагмент кода для настройки среды для процесса, а не логика при обработке start / stop / respawn / etc.
Самая сложная часть и то, что люди получают неправильно, чаще всего, знает, когда начинать / останавливать свою работу. start on runlevel [2345] кажется логичным, но игнорирует тот факт, что в этой точке сеть идет параллельно, как и локальная файловая система. Ключ должен попытаться точно определить минимальные необходимые вам вещи (другие сервисы, файловые системы, сеть и т. Д.), Чтобы начать работать и начать, когда это будет сделано. Большинство традиционных сетевых сервисов должны делать start on (local-filesystems and net-device-up IFACE!=lo).
Я думал, что Upstart поддерживает обратную совместимость с скриптами инициализации SysV в /etc/init.d. Вы должны иметь возможность использовать сценарии init без изменений.
Таким образом, одно из заданий upstart должно быть простым для записи.
В сценариях init.d много скриптов скриптов, которые повторяются снова и снова. Операторы case, отслеживание pidfile, строки комментариев lsb. Неясно, как написать ХОРОШИЙ скрипт init.d, не прочитав его.
Если вы уже столкнулись с проблемой написания всего этого, вам не нужна работа с выскочкой, если только , как я уже упоминал в другом комментарии, вы зависите от другой стартовой работы / события.
Но на самом деле выскочка делает вещи очень простыми. Вам не нужен предварительный старт, если вам не нужно настраивать такие вещи, как tmpdirs, ulimits или runtime. Вам не нужно использовать пост-стоп, если вы не захотите убедиться, что вы убираете его после службы (служба действительно должна очищаться после себя при обычном выходе).
Часто гигантский init.d сценарий с множеством вариантов сводится к 10-15-строчной выскочке. Самые сложные скрипты init.d могут иметь большую часть своей логики, сбрасываемой в pre-start. Ключ в том, что это всего лишь небольшой фрагмент кода для настройки среды для процесса, а не логика при обработке start / stop / respawn / etc.
Самая сложная часть и то, что люди получают неправильно, чаще всего, знает, когда начинать / останавливать свою работу. start on runlevel [2345] кажется логичным, но игнорирует тот факт, что в этой точке сеть идет параллельно, как и локальная файловая система. Ключ должен попытаться точно определить минимальные необходимые вам вещи (другие сервисы, файловые системы, сеть и т. Д.), Чтобы начать работать и начать, когда это будет сделано. Большинство традиционных сетевых сервисов должны делать start on (local-filesystems and net-device-up IFACE!=lo).
Я думал, что Upstart поддерживает обратную совместимость с скриптами инициализации SysV в /etc/init.d. Вы должны иметь возможность использовать сценарии init без изменений.
Таким образом, одно из заданий upstart должно быть простым для записи.
В сценариях init.d много скриптов скриптов, которые повторяются снова и снова. Операторы case, отслеживание pidfile, строки комментариев lsb. Неясно, как написать ХОРОШИЙ скрипт init.d, не прочитав его.
Если вы уже столкнулись с проблемой написания всего этого, вам не нужна работа с выскочкой, если только , как я уже упоминал в другом комментарии, вы зависите от другой стартовой работы / события.
Но на самом деле выскочка делает вещи очень простыми. Вам не нужен предварительный старт, если вам не нужно настраивать такие вещи, как tmpdirs, ulimits или runtime. Вам не нужно использовать пост-стоп, если вы не захотите убедиться, что вы убираете его после службы (служба действительно должна очищаться после себя при обычном выходе).
Часто гигантский init.d сценарий с множеством вариантов сводится к 10-15-строчной выскочке. Самые сложные скрипты init.d могут иметь большую часть своей логики, сбрасываемой в pre-start. Ключ в том, что это всего лишь небольшой фрагмент кода для настройки среды для процесса, а не логика при обработке start / stop / respawn / etc.
Самая сложная часть и то, что люди получают неправильно, чаще всего, знает, когда начинать / останавливать свою работу. start on runlevel [2345] кажется логичным, но игнорирует тот факт, что в этой точке сеть идет параллельно, как и локальная файловая система. Ключ должен попытаться точно определить минимальные необходимые вам вещи (другие сервисы, файловые системы, сеть и т. Д.), Чтобы начать работать и начать, когда это будет сделано. Большинство традиционных сетевых сервисов должны делать start on (local-filesystems and net-device-up IFACE!=lo).
Я думал, что Upstart поддерживает обратную совместимость с скриптами инициализации SysV в /etc/init.d. Вы должны иметь возможность использовать сценарии init без изменений.
Таким образом, одно из заданий upstart должно быть простым для записи.
В сценариях init.d много скриптов скриптов, которые повторяются снова и снова. Операторы case, отслеживание pidfile, строки комментариев lsb. Неясно, как написать ХОРОШИЙ скрипт init.d, не прочитав его.
Если вы уже столкнулись с проблемой написания всего этого, вам не нужна работа с выскочкой, если только , как я уже упоминал в другом комментарии, вы зависите от другой стартовой работы / события.
Но на самом деле выскочка делает вещи очень простыми. Вам не нужен предварительный старт, если вам не нужно настраивать такие вещи, как tmpdirs, ulimits или runtime. Вам не нужно использовать пост-стоп, если вы не захотите убедиться, что вы убираете его после службы (служба действительно должна очищаться после себя при обычном выходе).
Часто гигантский init.d сценарий с множеством вариантов сводится к 10-15-строчной выскочке. Самые сложные скрипты init.d могут иметь большую часть своей логики, сбрасываемой в pre-start. Ключ в том, что это всего лишь небольшой фрагмент кода для настройки среды для процесса, а не логика при обработке start / stop / respawn / etc.
Самая сложная часть и то, что люди получают неправильно, чаще всего, знает, когда начинать / останавливать свою работу. start on runlevel [2345] кажется логичным, но игнорирует тот факт, что в этой точке сеть идет параллельно, как и локальная файловая система. Ключ должен попытаться точно определить минимальные необходимые вам вещи (другие сервисы, файловые системы, сеть и т. Д.), Чтобы начать работать и начать, когда это будет сделано. Большинство традиционных сетевых сервисов должны делать start on (local-filesystems and net-device-up IFACE!=lo).
Я думал, что Upstart поддерживает обратную совместимость с скриптами инициализации SysV в /etc/init.d
. Вы должны просто использовать сценарии init без изменений.
Таким образом, одно очко надстрочных заданий должно быть простым для записи.
В сценариях init.d много скриптов скриптов, которые повторяются снова и снова. Операторы case, отслеживание pidfile, строки комментариев lsb. Не очень понятно, как написать ХОРОШИЙ скрипт init.d, не прочитав его.
Если вы уже столкнулись с проблемой написания всего этого, вам не нужна работа с выскочкой, если только , как я уже упоминал в другом комментарии, вы зависите от другой стартовой работы / события.
Но на самом деле выскочка делает вещи очень простыми. Вам не нужен предварительный старт, если вам не нужно настраивать такие вещи, как tmpdirs, ulimits или runtime. Вам не нужно устанавливать пост-стоп, если вы не хотите удостовериться, что вы убираете его после службы (служба действительно должна очищаться после себя при нормальном выходе).
Часто гигантский init.d сценарий с множеством вариантов сводится к 10-15-строчной выскочке. Самые сложные скрипты init.d могут иметь большую часть своей логики, сбрасываемой в pre-start. Ключ в том, что это всего лишь небольшой фрагмент кода для настройки среды для процесса, а не логика обработки start / stop / respawn / и т. Д.
Самая сложная часть и то, что люди получают неправильно, чаще всего, знает, когда начинать / останавливать свою работу. start on runlevel [2345]
кажется логичным, но игнорирует тот факт, что в этой точке сеть идет параллельно, как и локальные файловые системы. Ключ должен попытаться точно определить минимальные необходимые вам вещи (другие сервисы, файловые системы, сеть и т. Д.), Чтобы начать работать и начать, когда это будет сделано. Большинство традиционных сетевых сервисов должны запускать (локальные файловые системы и net-device-up IFACE! = Lo)
.
Я думал, что Upstart поддерживает обратную совместимость с скриптами инициализации SysV в /etc/init.d
. Вы должны просто использовать сценарии init без изменений.
Таким образом, одно очко надстрочных заданий должно быть простым для записи.
В сценариях init.d много скриптов скриптов, которые повторяются снова и снова. Операторы case, отслеживание pidfile, строки комментариев lsb. Не очень понятно, как написать ХОРОШИЙ скрипт init.d, не прочитав его.
Если вы уже столкнулись с проблемой написания всего этого, вам не нужна работа с выскочкой, если только , как я уже упоминал в другом комментарии, вы зависите от другой стартовой работы / события.
Но на самом деле выскочка делает вещи очень простыми. Вам не нужен предварительный старт, если вам не нужно настраивать такие вещи, как tmpdirs, ulimits или runtime. Вам не нужно устанавливать пост-стоп, если вы не хотите удостовериться, что вы убираете его после службы (служба действительно должна очищаться после себя при нормальном выходе).
Часто гигантский init.d сценарий с множеством вариантов сводится к 10-15-строчной выскочке. Самые сложные скрипты init.d могут иметь большую часть своей логики, сбрасываемой в pre-start. Ключ в том, что это всего лишь небольшой фрагмент кода для настройки среды для процесса, а не логика обработки start / stop / respawn / и т. Д.
Самая сложная часть и то, что люди получают неправильно, чаще всего, знает, когда начинать / останавливать свою работу. start on runlevel [2345]
кажется логичным, но игнорирует тот факт, что в этой точке сеть идет параллельно, как и локальные файловые системы. Ключ должен попытаться точно определить минимальные необходимые вам вещи (другие сервисы, файловые системы, сеть и т. Д.), Чтобы начать работать и начать, когда это будет сделано. Большинство традиционных сетевых сервисов должны запускать (локальные файловые системы и net-device-up IFACE! = Lo)
.
Я думал, что Upstart поддерживает обратную совместимость с скриптами инициализации SysV в /etc/init.d
. Вы должны просто использовать сценарии init без изменений.
Таким образом, одно очко надстрочных заданий должно быть простым для записи.
В сценариях init.d много скриптов скриптов, которые повторяются снова и снова. Операторы case, отслеживание pidfile, строки комментариев lsb. Не очень понятно, как написать ХОРОШИЙ скрипт init.d, не прочитав его.
Если вы уже столкнулись с проблемой написания всего этого, вам не нужна работа с выскочкой, если только , как я уже упоминал в другом комментарии, вы зависите от другой стартовой работы / события.
Но на самом деле выскочка делает вещи очень простыми. Вам не нужен предварительный старт, если вам не нужно настраивать такие вещи, как tmpdirs, ulimits или runtime. Вам не нужно устанавливать пост-стоп, если вы не хотите удостовериться, что вы убираете его после службы (служба действительно должна очищаться после себя при нормальном выходе).
Часто гигантский init.d сценарий с множеством вариантов сводится к 10-15-строчной выскочке. Самые сложные скрипты init.d могут иметь большую часть своей логики, сбрасываемой в pre-start. Ключ в том, что это всего лишь небольшой фрагмент кода для настройки среды для процесса, а не логика обработки start / stop / respawn / и т. Д.
Самая сложная часть и то, что люди получают неправильно, чаще всего, знает, когда начинать / останавливать свою работу. start on runlevel [2345]
кажется логичным, но игнорирует тот факт, что в этой точке сеть идет параллельно, как и локальные файловые системы. Ключ должен попытаться точно определить минимальные необходимые вам вещи (другие сервисы, файловые системы, сеть и т. Д.), Чтобы начать работать и начать, когда это будет сделано. Большинство традиционных сетевых сервисов должны запускать (локальные файловые системы и net-device-up IFACE! = Lo)
.
Таким образом, одно очко надстрочных заданий должно быть простым для записи.
В сценариях init.d много скриптов скриптов, которые повторяются снова и снова. Операторы case, отслеживание pidfile, строки комментариев lsb. Не очень понятно, как написать ХОРОШИЙ скрипт init.d, не прочитав его.
Если вы уже столкнулись с проблемой написания всего этого, вам не нужна работа с выскочкой, если только , как я уже упоминал в другом комментарии, вы зависите от другой стартовой работы / события.
Но на самом деле выскочка делает вещи очень простыми. Вам не нужен предварительный старт, если вам не нужно настраивать такие вещи, как tmpdirs, ulimits или runtime. Вам не нужно устанавливать пост-стоп, если вы не хотите удостовериться, что вы убираете его после службы (служба действительно должна очищаться после себя при нормальном выходе).
Часто гигантский init.d сценарий с множеством вариантов сводится к 10-15-строчной выскочке. Самые сложные скрипты init.d могут иметь большую часть своей логики, сбрасываемой в pre-start. Ключ в том, что это всего лишь небольшой фрагмент кода для настройки среды для процесса, а не логика обработки start / stop / respawn / и т. Д.
Самая сложная часть и то, что люди получают неправильно, чаще всего, знает, когда начинать / останавливать свою работу. start on runlevel [2345]
кажется логичным, но игнорирует тот факт, что в этой точке сеть идет параллельно, как и локальные файловые системы. Ключ должен попытаться точно определить минимальные необходимые вам вещи (другие сервисы, файловые системы, сеть и т. Д.), Чтобы начать работать и начать, когда это будет сделано. Большинство традиционных сетевых сервисов должны запускать (локальные файловые системы и net-device-up IFACE! = Lo)
.
Я думал, что Upstart поддерживает обратную совместимость с скриптами инициализации SysV в /etc/init.d
. Вы должны просто использовать сценарии init без изменений.
Я думал, что Upstart поддерживает обратную совместимость с скриптами инициализации SysV в /etc/init.d
. Вы должны просто использовать сценарии init без изменений.
/etc/init.d/myservice start
, в /etc/rc.local
, в правильном порядке. Это гарантирует, что ваши службы запустится последними, после всех других сервисов, в том числе запущенных сценариями запуска Upstart.
– Ryan Thompson
29 November 2010 в 04:42
Таким образом, одно очко надстрочных заданий должно быть простым для записи.
В сценариях init.d много скриптов скриптов, которые повторяются снова и снова. Операторы case, отслеживание pidfile, строки комментариев lsb. Не очень понятно, как написать ХОРОШИЙ скрипт init.d, не прочитав его.
Если вы уже столкнулись с проблемой написания всего этого, вам не нужна работа с выскочкой, если только , как я уже упоминал в другом комментарии, вы зависите от другой стартовой работы / события.
Но на самом деле выскочка делает вещи очень простыми. Вам не нужен предварительный старт, если вам не нужно настраивать такие вещи, как tmpdirs, ulimits или runtime. Вам не нужно устанавливать пост-стоп, если вы не хотите удостовериться, что вы убираете его после службы (служба действительно должна очищаться после себя при нормальном выходе).
Часто гигантский init.d сценарий с множеством вариантов сводится к 10-15-строчной выскочке. Самые сложные скрипты init.d могут иметь большую часть своей логики, сбрасываемой в pre-start. Ключ в том, что это всего лишь небольшой фрагмент кода для настройки среды для процесса, а не логика обработки start / stop / respawn / и т. Д.
Самая сложная часть и то, что люди получают неправильно, чаще всего, знает, когда начинать / останавливать свою работу. start on runlevel [2345]
кажется логичным, но игнорирует тот факт, что в этой точке сеть идет параллельно, как и локальные файловые системы. Ключ должен попытаться точно определить минимальные необходимые вам вещи (другие сервисы, файловые системы, сеть и т. Д.), Чтобы начать работать и начать, когда это будет сделано. Большинство традиционных сетевых сервисов должны запускать (локальные файловые системы и net-device-up IFACE! = Lo)
.