колотите код в rc.local, не выполняющемся после начальной загрузки

I.T.: Вы хотите сделать свою жизнь максимально легкой, но помнить, что Ваша компания о получении их сделанной работы. Учитывая предпосылку технических пользователей, необходимо смочь иметь путь с 95% рабочих столов и позволить "Индивидуалистам" сделать свою собственную вещь.

Для большинства офисных работников, выбора ОС и такого, не то, что большой фактор.

Пользователи: можно выполнить собственный компьютер, но помнить, что I.T. не будет способным помочь Вам при вхождении в "интересные" виды проблемы.

Лично, у меня есть 98 полей, которые я использую для получения сделанной работы. Затем у меня также есть поле XP, на которое идет весь материал "предприятия".

2
задан 12 November 2014 в 12:04
10 ответов

Это не что-то простое как опечатка, это? Если это:

#!/bin/hash

Действительно будьте:

#!/bin/bash

?

(Точно так же, как CK заявила в комментарии, теперь, когда я смотрю),

1
ответ дан 3 December 2019 в 09:30

Вы уверены, что Ваша система поддерживает rc.local? Если это не будет зарегистрировано, то необходимо будет следовать всем init сценариям. Вы запускаете в/etc/inittab. (Можно найти, что оттуда Вы переходите к/etc/rc.d/rc),

В некоторых системах/etc/rc.d/rc.local поддерживается через символьную ссылку/etc/rc.d/rcX.d/S99local. (где X соответствующий runlevel).

При использовании Redhat нет никакой настоящей причины, чтобы не создать собственный init сценарий, добавить, что он к/etc/rc.d/init.d, chkconfig - добавляет сценарий и chkconfig на сценарии. Это превратит корректные символьные ссылки в/etc/rc.d/rcX.d каталоги и делает init сценарии легкими развернуть или отключить.

Использование устаревшего rc.local хорошо для быстрого взлома, если Ваша система действительно поддерживает его, но это действительно не подходит для чего-то важного или постоянного.

1
ответ дан 3 December 2019 в 09:30

Вы проверили полномочия на каталоге, который содержит rc.local файл?

0
ответ дан 3 December 2019 в 09:30

Возможно, в rc.local сценарии существует синтаксическая ошибка. При попытке вручную выполнить его из командной строки после того, как система загрузилась, это выполняется правильно?

0
ответ дан 3 December 2019 в 09:30
  • 1
    I' попытка ll, которая, но удар компилирует код сценария прежде, чем выполниться или делает это просто выполненный, начинает работать? Причина, почему я спрашиваю, состоит в том, что я получил впечатление, что это только начинает работать и поэтому если бы я авеню синтаксическая ошибка на строке 50, сценарий работал бы 1-49 и затем остановился бы из-за этой ошибки. Или разве это не работает вообще, когда существует ошибочный подарок где-нибудь в файле сценария? Посмотрите, что мое обновление whoch показывает первые несколько строк сценария. –  mrTomahawk 18 May 2009 в 21:20
  • 2
    Сценарии выполняются линию за линией, это повредилось бы в строке 50, после того как это добралось там, если была ошибка на строке 50. –  sclarson 18 May 2009 в 22:24
  • 3
    остановка на ошибке (значение по умолчанию на) опция. ищите что ' набор-e' делает. –  pjz 20 May 2009 в 08:40
  • 4
    Я нахожу, что запущение скрипта с ударом-x помогает мне видеть то, что видит удар, когда это анализирует сценарий. –  Cawflands 3 August 2009 в 16:09

rc.local был способом BSD запустить скрипты запуска. Хотя много версий Linux действительно поддерживают вызов файла "rc.local", который выполняется при запуске, поскольку я вспоминаю, что они потребовали, чтобы набор символьных ссылок и другого связующего звена работал, поскольку Linux следовал Солярису способ обработать сценарии запуска.

0
ответ дан 3 December 2019 в 09:30

Разве Ваш код не должен походить на больше это? 3 изменения здесь:

#!/bin/bash
echo "" >> /tmp/configLog
echo "Entering maintenance mode" >> /tmp/configLog
0
ответ дан 3 December 2019 в 09:30
  • 1
    в отношении повторения, так или иначе работ. Я делаю это этот путь именно так повторение многих вещей, которые взгляды очищают при рассмотрении кода. –  mrTomahawk 18 May 2009 в 21:47
  • 2
    как поединок первая строка? обычно я думаю, что rc.local потребности выполнения включены для Вашего дистрибутива. –  Ian Kelling 19 May 2009 в 01:33
  • 3
    Просто мысль I' d пересматривают опечатку на первой строке сценария. Если it' s скопировать/вставить затем это должен быть/bin/bash, а не/bin/hash (если Вы действительно не хотите использовать Shell Haskell). –  CK. 20 May 2009 в 16:53

SELinux.

Попробуйте getenforce, чтобы видеть, включается ли selinux. Это возвратится 1 или осуществление, если это будет включено. Затем, если это - проверка dmesg, чтобы видеть, существует ли связанная ошибка selinux, которая похожа на него, мог бы относиться к Вашему сценарию.

0
ответ дан 3 December 2019 в 09:30

Если та первая строка действительно говорит, что #!/bin/hash затем Вы получите ошибку, подобную этому:

-bash: ./test.sh: /bin/hash: bad interpreter: No such file or directory

когда это работает.

Вы могли бы также хотеть проверить, что сценарий имеет, выполняют полномочия.

0
ответ дан 3 December 2019 в 09:30

Так,/tmp/configLog существует? Если так, Ваш сценарий стреляет, и он просто умирает где-нибудь.

Запустите с основ:

  1. Поместите простое, остроту в/etc/rc.local, как это.
    touch /tmp/itworked
    Это работало? После перезагрузки существует/tmp/itworked? Если так, затем rc.local выполняется.
  2. Другой общий глюк - то, что, если Ваш сценарий является демоном это или должен обработать разветвление к фону, или это должны быть знания в rc.local. Если Ваш сценарий является/bin/myscript, то rc.local должен иметь:
    /bin/myscript &
    в нем. Требуется много времени для выполнения? Может быть тайм-аут где-нибудь в init сценариях, чтобы препятствовать тому, чтобы пользователи остановили процесс начальной загрузки - фоновая обработка, процесс получит Вас вокруг этого, если это будет существовать.
  3. Если 'касание' работает, и Вы - фоновая обработка, это должно быть в Вашем сценарии где-нибудь. Что это делает, когда Вы работаете
    /bin/sh /etc/rc.local
    из командной строки?
  4. Как сказанный Jason, проверьте dmesg, а также/var/log/messages для любых подсказок.
  5. То, когда сценарий, работало от rc.local, он не будет иметь полного набора переменных среды, которые имеет Ваш пользователь root при входе в систему - например, $PATH может отличаться. Не полагайтесь на $PATH. Можно также протестировать сценарий путем планирования 'в' задании, которое близко подойдет к моделированию среды.
3
ответ дан 3 December 2019 в 09:30

Не уверенный, если обработка init сценариев на Linux последовательна или параллельна, но системы Соляриса, запускают сценарии последовательно. Если более ранний init сценарий еще не закончился (я иногда вижу это из-за sendmail/DNS зависимости), более поздние не становятся запущенными так быстро, как Вы приняли бы.

Используйте PS, чтобы видеть, работает ли более ранний init сценарий все еще.

1
ответ дан 3 December 2019 в 09:30

Теги

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