Как установить скрипт init.d?

71

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

  • скопировал файл celeryd и вставил его в папку /etc/init.d/
  • создал файл конфигурации celeryd в папке / etc / default /

теперь, когда я пытался запустить его sudo /etc/init.d/celeryd start, он выдает ошибкуsudo: /etc/init.d/celeryd: command not found

Я погуглил о том, как установить init.d, я получил этот SO-вопрос .

он говорит, чтобы выпустить uname -aи когда я получаю это:

Linux capsonesystem8-desktop 3.2.0-43-generic-pae 
#68-Ubuntu SMP Wed May 15 03:55:10 UTC     
2013 i686 i686 i386 GNU/Linux

а также он говорит, что используйте utils вроде insservдля включения сценария init.d, поэтому попробовал:

insserv /etc/init.d/celeryd но это выдает ошибку insserv: command not found

поэтому я попытался установить insserv sudo apt-get install insserv . но это уже сказано:

insserv is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 222 not upgraded.

Так как установить скрипт init.d ?? Любая помощь будет оценена.

update1:

когда я пытался:

$ sh -x /etc/init.d/celeryd start

это раскрыть некоторые errors. может быть, поэтому служба не запускается.

Update2:

Я очистил все ошибки при запуске, $ sh -x /etc/init.d/celeryd startно все равно sudo /etc/init.d/celeryd startвыдает command not foundошибку

suhailvs
источник
Сейчас у меня нет времени на ответ, но, если вы хотите, чтобы он запускался как часть вашего запуска, я думаю, что вам нужно добавить ссылки на ваш скрипт в различных каталогах уровня запуска, чтобы Linux обрабатывал его запуск и остановку для вы. (/etc/rc[0-6].d) Этот процесс постепенно заменяется более новым методом (я думаю, он называется upstart.), но я вообще не рассматривал это. Ссылка в вашем посте относится к некоторым из них.
Джо

Ответы:

55

Ваш celerydсценарий, вероятно, не исполняемый, поэтому sudo /etc/init.d/celerydвозвращается command not found. Итак, вам нужно сначала сделать его исполняемым.

Для этого выполните следующие команды:

sudo chmod 755 /etc/init.d/celeryd
sudo chown root:root /etc/init.d/celeryd

Первая строка изменяет права доступа -rwxr-xr-x, а вторая строка гарантирует, что владельцем и группой является владелец файла root.

Как только это будет сделано, я предполагаю, что вам нужно будет использовать sudo /etc/init.d/celeryd startдля запуска демона.

Алаа али
источник
70

Когда вы копируете скрипт на место, не забудьте сделать его исполняемым и владельцем root:

sudo chmod +x /etc/init.d/celeryd
sudo chown root:root /etc/init.d/celeryd

После того, как вы установили это, вы можете настроить его автоматический запуск при загрузке:

sudo update-rc.d celeryd defaults
sudo update-rc.d celeryd enable
Дэвид Пердью
источник
Это будет считаться лучшим ответом, причиной указания на update-rc.d.
MAChitgarha
3

Если вы получили command not foundошибку при запуске insserv, вы можете исправить ее, выполнив следующую команду:

sudo ln -s /usr/lib/insserv/insserv /sbin/insserv

Тогда посмотрите insserv -hили обратитесь man insservза помощью.

Также вы можете попробовать с:

sudo update-rc.d celeryd defaults

Источник: https://askubuntu.com/a/334043/147044

Раду Рэдяну
источник
1

Это последовательность команд для автоматического запуска вашего демона во время загрузки:

sudo cd /etc/init.d
sudo chown root:root celeryd
sudo chmod 755 celeryd
sudo ln -s /usr/lib/insserv/insserv /sbin/insserv
sudo insserv celeryd
Олег Бондарь
источник