От init.d до выскочки, есть ли мост?

Я действительно смотрел на это сегодня, и короткий ответ - нет. Хакерное обходное решение - запустить gnome-панель с апплетом workspace-switcher. Этот апплет предоставляет параметр для количества строк рабочих пространств, поэтому вы можете создать макет сетки.

Раньше у меня был хак, который был демоном, работающим в фоновом режиме, который обрабатывал бы это для меня, поэтому Мне не нужен апплет для переключателя рабочего пространства. Однако это не работает. Однако я скоро переписал его, чтобы он снова работал с GNOME 3.x и использовал dconf / gsettings. Он будет настраиваться только после редактирования настроек напрямую, используя инструмент командной строки gsettings или dconf-editor.

11
задан 25 November 2010 в 02:06

30 ответов

Я не помню, чтобы увидеть шаблон для этого. Его немного иронично, однако, технически, его выскочка, которая запускает ваш скрипт 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
9
ответ дан 26 May 2018 в 00:15
  • 1
    В выскочке документация говорит, что уровни запуска 3,4 и 5 не используются. Итак, вы просто должны использовать run level 2. – djangofan 20 December 2011 в 22:27
  • 2
    это было какое-то время, но я уверен, что 5 - это система с запущенным графическим интерфейсом, по крайней мере, это было раньше. – Joseph Rogers 16 December 2016 в 14:28

Я не помню, чтобы увидеть шаблон для этого. Его немного иронично, однако, технически, его выскочка, которая запускает ваш скрипт 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
9
ответ дан 25 July 2018 в 22:50

Я не помню, чтобы увидеть шаблон для этого. Его немного иронично, однако, технически, его выскочка, которая запускает ваш скрипт 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
9
ответ дан 31 July 2018 в 10:47

Я не помню, чтобы увидеть шаблон для этого. Его немного иронично, однако, технически, его выскочка, которая запускает ваш скрипт 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
9
ответ дан 31 July 2018 в 11:52

Я не помню, чтобы увидеть шаблон для этого. Его немного иронично, однако, технически, его выскочка, которая запускает ваш скрипт 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
9
ответ дан 2 August 2018 в 04:14

Я не помню, чтобы увидеть шаблон для этого. Это немного иронично, однако, что технически, его выскочка, которая запускает ваш скрипт init.d, в первую очередь благодаря работе обратной совместимости rc и rcS.

Я хотел бы переписать все, что у вас есть, как однако, я знаю, что некоторые скрипты трудно конвертировать, поэтому вот что я сделал некоторое время на некоторых моих скриптах:

  описание «xyz» автор «xyz» начинается с уровня запуска  5 stop on runlevel [! 5] сценарий предварительного запуска # сделайте мою работу здесь, чтобы запустить скрипт пост-стоп-скрипта для завершения работы службы #, работающий здесь, чтобы остановить скрипт конца службы  

Теперь в зависимости о характере службы, независимо от того, сохраняется ли она или вилки, вам может потребоваться добавить ожидание fork или task в файл задания.

Просто для завершения мысли, как правило, это все, что есть в любом случае. Выполняется вся предварительная работа, выполняется вся очистка, единственное, что осталось, это сама служба, которая обычно добавляется:

  exec service_cmd  
9
ответ дан 4 August 2018 в 20:19

Я не помню, чтобы увидеть шаблон для этого. Это немного иронично, однако, что технически, его выскочка, которая запускает ваш скрипт init.d, в первую очередь благодаря работе обратной совместимости rc и rcS.

Я хотел бы переписать все, что у вас есть, как однако, я знаю, что некоторые скрипты трудно конвертировать, поэтому вот что я сделал некоторое время на некоторых моих скриптах:

  описание «xyz» автор «xyz» начинается с уровня запуска  5 stop on runlevel [! 5] сценарий предварительного запуска # сделайте мою работу здесь, чтобы запустить скрипт пост-стоп-скрипта для завершения работы службы #, работающий здесь, чтобы остановить скрипт конца службы  

Теперь в зависимости о характере службы, независимо от того, сохраняется ли она или вилки, вам может потребоваться добавить ожидание fork или task в файл задания.

Просто для завершения мысли, как правило, это все, что есть в любом случае. Выполняется вся предварительная работа, выполняется вся очистка, единственное, что осталось, это сама служба, которая обычно добавляется:

  exec service_cmd  
9
ответ дан 6 August 2018 в 04:19

Я не помню, чтобы увидеть шаблон для этого. Это немного иронично, однако, что технически, его выскочка, которая запускает ваш скрипт init.d, в первую очередь благодаря работе обратной совместимости rc и rcS.

Я хотел бы переписать все, что у вас есть, как однако, я знаю, что некоторые скрипты трудно конвертировать, поэтому вот что я сделал некоторое время на некоторых моих скриптах:

  описание «xyz» автор «xyz» начинается с уровня запуска  5 stop on runlevel [! 5] сценарий предварительного запуска # сделайте мою работу здесь, чтобы запустить скрипт пост-стоп-скрипта для завершения работы службы #, работающий здесь, чтобы остановить скрипт конца службы  

Теперь в зависимости о характере службы, независимо от того, сохраняется ли она или вилки, вам может потребоваться добавить ожидание fork или task в файл задания.

Просто для завершения мысли, как правило, это все, что есть в любом случае. Выполняется вся предварительная работа, выполняется вся очистка, единственное, что осталось, это сама служба, которая обычно добавляется:

  exec service_cmd  
9
ответ дан 7 August 2018 в 22:24

Я не помню, чтобы увидеть шаблон для этого. Это немного иронично, однако, что технически, его выскочка, которая запускает ваш скрипт init.d, в первую очередь благодаря работе обратной совместимости rc и rcS.

Я хотел бы переписать все, что у вас есть, как однако, я знаю, что некоторые скрипты трудно конвертировать, поэтому вот что я сделал некоторое время на некоторых моих скриптах:

  описание «xyz» автор «xyz» начинается с уровня запуска  5 stop on runlevel [! 5] сценарий предварительного запуска # сделайте мою работу здесь, чтобы запустить скрипт пост-стоп-скрипта для завершения работы службы #, работающий здесь, чтобы остановить скрипт конца службы  

Теперь в зависимости о характере службы, независимо от того, сохраняется ли она или вилки, вам может потребоваться добавить ожидание fork или task в файл задания.

Просто для завершения мысли, как правило, это все, что есть в любом случае. Выполняется вся предварительная работа, выполняется вся очистка, единственное, что осталось, это сама служба, которая обычно добавляется:

  exec service_cmd  
9
ответ дан 10 August 2018 в 10:33

Я не помню, чтобы увидеть шаблон для этого. Это немного иронично, однако, что технически, его выскочка, которая запускает ваш скрипт init.d, в первую очередь благодаря работе обратной совместимости rc и rcS.

Я хотел бы переписать все, что у вас есть, как однако, я знаю, что некоторые скрипты трудно конвертировать, поэтому вот что я сделал некоторое время на некоторых моих скриптах:

  описание «xyz» автор «xyz» начинается с уровня запуска  5 stop on runlevel [! 5] сценарий предварительного запуска # сделайте мою работу здесь, чтобы запустить скрипт пост-стоп-скрипта для завершения работы службы #, работающий здесь, чтобы остановить скрипт конца службы  

Теперь в зависимости о характере службы, независимо от того, сохраняется ли она или вилки, вам может потребоваться добавить ожидание fork или task в файл задания.

Просто для завершения мысли, как правило, это все, что есть в любом случае. Выполняется вся предварительная работа, выполняется вся очистка, единственное, что осталось, это сама служба, которая обычно добавляется:

  exec service_cmd  
9
ответ дан 13 August 2018 в 17:02
  • 1
    В выскочке документация говорит, что уровни запуска 3,4 и 5 не используются. Итак, вы просто должны использовать run level 2. – djangofan 20 December 2011 в 22:27
  • 2
    это было какое-то время, но я уверен, что 5 - это система с запущенным графическим интерфейсом, по крайней мере, это было раньше. – Joseph Rogers 16 December 2016 в 14:28

Таким образом, одно из заданий 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).

6
ответ дан 26 May 2018 в 00:15

Я думал, что Upstart поддерживает обратную совместимость с скриптами инициализации SysV в /etc/init.d. Вы должны иметь возможность использовать сценарии init без изменений.

3
ответ дан 26 May 2018 в 00:15
  • 1
    Это так, но порядок уже не так легко предсказать. Задачи Upstart могут начинаться до / после запуска вашего скрипта rc2.d / S99mything. Поэтому, как только вы зависите от управляемой службы выскочки, вам нужно выполнить выскочку. – SpamapS 28 November 2010 в 02:17
  • 2
    В качестве взлома вы можете удалить скрипты init из определенных уровней выполнения, а вместо этого добавить последовательность строк, например /etc/init.d/myservice start в /etc/rc.local, в правильном порядке. Это гарантирует, что ваши службы запустится последними, после всех других сервисов, в том числе запущенных сценариями запуска Upstart. – Ryan Thompson 29 November 2010 в 04:42

Я думал, что Upstart поддерживает обратную совместимость с скриптами инициализации SysV в /etc/init.d. Вы должны иметь возможность использовать сценарии init без изменений.

3
ответ дан 25 July 2018 в 22:50
  • 1
    Это так, но порядок уже не так легко предсказать. Задачи Upstart могут начинаться до / после запуска вашего скрипта rc2.d / S99mything. Поэтому, как только вы зависите от управляемой службы выскочки, вам нужно выполнить выскочку. – SpamapS 28 November 2010 в 02:17
  • 2
    В качестве взлома вы можете удалить скрипты init из определенных уровней выполнения, а вместо этого добавить последовательность строк, например /etc/init.d/myservice start в /etc/rc.local, в правильном порядке. Это гарантирует, что ваши службы запустится последними, после всех других сервисов, в том числе запущенных сценариями запуска Upstart. – Ryan Thompson 29 November 2010 в 04:42

Таким образом, одно из заданий 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).

6
ответ дан 25 July 2018 в 22:50

Я думал, что Upstart поддерживает обратную совместимость с скриптами инициализации SysV в /etc/init.d. Вы должны иметь возможность использовать сценарии init без изменений.

3
ответ дан 31 July 2018 в 10:47
  • 1
    Это так, но порядок уже не так легко предсказать. Задачи Upstart могут начинаться до / после запуска вашего скрипта rc2.d / S99mything. Поэтому, как только вы зависите от управляемой службы выскочки, вам нужно выполнить выскочку. – SpamapS 28 November 2010 в 02:17
  • 2
    В качестве взлома вы можете удалить скрипты init из определенных уровней выполнения, а вместо этого добавить последовательность строк, например /etc/init.d/myservice start в /etc/rc.local, в правильном порядке. Это гарантирует, что ваши службы запустится последними, после всех других сервисов, в том числе запущенных сценариями запуска Upstart. – Ryan Thompson 29 November 2010 в 04:42

Таким образом, одно из заданий 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).

6
ответ дан 31 July 2018 в 10:47

Я думал, что Upstart поддерживает обратную совместимость с скриптами инициализации SysV в /etc/init.d. Вы должны иметь возможность использовать сценарии init без изменений.

3
ответ дан 31 July 2018 в 11:52
  • 1
    Это так, но порядок уже не так легко предсказать. Задачи Upstart могут начинаться до / после запуска вашего скрипта rc2.d / S99mything. Поэтому, как только вы зависите от управляемой службы выскочки, вам нужно выполнить выскочку. – SpamapS 28 November 2010 в 02:17
  • 2
    В качестве взлома вы можете удалить скрипты init из определенных уровней выполнения, а вместо этого добавить последовательность строк, например /etc/init.d/myservice start в /etc/rc.local, в правильном порядке. Это гарантирует, что ваши службы запустится последними, после всех других сервисов, в том числе запущенных сценариями запуска Upstart. – Ryan Thompson 29 November 2010 в 04:42

Таким образом, одно из заданий 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).

6
ответ дан 31 July 2018 в 11:52

Я думал, что Upstart поддерживает обратную совместимость с скриптами инициализации SysV в /etc/init.d. Вы должны иметь возможность использовать сценарии init без изменений.

3
ответ дан 2 August 2018 в 04:14
  • 1
    Это так, но порядок уже не так легко предсказать. Задачи Upstart могут начинаться до / после запуска вашего скрипта rc2.d / S99mything. Поэтому, как только вы зависите от управляемой службы выскочки, вам нужно выполнить выскочку. – SpamapS 28 November 2010 в 02:17
  • 2
    В качестве взлома вы можете удалить скрипты init из определенных уровней выполнения, а вместо этого добавить последовательность строк, например /etc/init.d/myservice start в /etc/rc.local, в правильном порядке. Это гарантирует, что ваши службы запустится последними, после всех других сервисов, в том числе запущенных сценариями запуска Upstart. – Ryan Thompson 29 November 2010 в 04:42

Таким образом, одно из заданий 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).

6
ответ дан 2 August 2018 в 04:14

Я думал, что Upstart поддерживает обратную совместимость с скриптами инициализации SysV в /etc/init.d . Вы должны просто использовать сценарии init без изменений.

3
ответ дан 4 August 2018 в 20:19

Таким образом, одно очко надстрочных заданий должно быть простым для записи.

В сценариях 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) .

6
ответ дан 4 August 2018 в 20:19

Я думал, что Upstart поддерживает обратную совместимость с скриптами инициализации SysV в /etc/init.d . Вы должны просто использовать сценарии init без изменений.

3
ответ дан 6 August 2018 в 04:19

Таким образом, одно очко надстрочных заданий должно быть простым для записи.

В сценариях 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) .

6
ответ дан 6 August 2018 в 04:19

Я думал, что Upstart поддерживает обратную совместимость с скриптами инициализации SysV в /etc/init.d . Вы должны просто использовать сценарии init без изменений.

3
ответ дан 7 August 2018 в 22:24

Таким образом, одно очко надстрочных заданий должно быть простым для записи.

В сценариях 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) .

6
ответ дан 7 August 2018 в 22:24

Таким образом, одно очко надстрочных заданий должно быть простым для записи.

В сценариях 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) .

6
ответ дан 10 August 2018 в 10:33

Я думал, что Upstart поддерживает обратную совместимость с скриптами инициализации SysV в /etc/init.d . Вы должны просто использовать сценарии init без изменений.

3
ответ дан 10 August 2018 в 10:33

Я думал, что Upstart поддерживает обратную совместимость с скриптами инициализации SysV в /etc/init.d . Вы должны просто использовать сценарии init без изменений.

3
ответ дан 13 August 2018 в 17:02
  • 1
    Это так, но порядок уже не так легко предсказать. Задачи Upstart могут начинаться до / после запуска вашего скрипта rc2.d / S99mything. Поэтому, как только вы зависите от управляемой службы выскочки, вам нужно выполнить выскочку. – SpamapS 28 November 2010 в 02:17
  • 2
    В качестве взлома вы можете удалить скрипты 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) .

6
ответ дан 13 August 2018 в 17:02

Другие вопросы по тегам:

Похожие вопросы: