Как добавить выполнение своей программы в автозагрузке? [РЕШЕНО]
Привет всем форумчанам! Положение следующее: мне необходимо добавить запуск своего двоичного файла на исполнение после включения питания. Я пробовал переименовывать свой файл в myfile.start и класть его в папку "/etc/local.d/". В списке процессов моя программка появляется, однако нет обращения из нее к портам ввода/вывода. Я читаю и пишу в ISA-шину через /dev/port. Если же я запускаю эту же программу myfile.start вручную, зайдя под рутом в консоли, то программа работает нормально. Думаю, что необходимо запускать мою программу после полной загрузки всех служб "Генту", а не при запуске из "/etc/local.d". Я пробовал добавлять мой файл в "/etc/init.d/myfile.start", обращения к портам ввода/вывода нет, хотя программа и запускается. Что ещё можно предпринять? Как запускать мою программу последней? Работаю по рутом по умолчанию, пользователей в системе больше нет. Буду рад совету, пишите.
- Для комментирования войдите или зарегистрируйтесь
Embedder написал(а): Привет
Скрипты в /etc/local.d/*.start запускаются последними после запуска всех инит скриптов. Попробуйте написать ининт скрипт, где в зависимостях укажите, что нужно ждать вашей программе, но сдаётся мне, что проблема в чём-то другом.
Заработало!
Так и вышло, что причина неполадки была не в запуске моей программы, а в самой программе. Я забыл поменять выдержки времени между записями в шину, поэтому и не работала запись в неё. Сейчас всё работает из папки "/etc/local.d/myfile.start".
Спасибо всем ответившим и просто прочитавшим тему. Молодцы!
А что в логах?
А что в логах?
В /var/log/messages ничего не
В /var/log/messages ничего не пишется о моей программе.
Я пробовал делать мою программу демоном. Итог тотже: при запуске вручную всё работает, при автозагрузке - нет.
Насколько я понял, "Генту" запускает службы из папки "/etc/init.d/" по алфавиту сверху вниз. Тогда выходит, что служба "local" запускается далеко не последней. Может в этом дело?
нет, local запускается
нет, local запускается последней. По алфавиту запускается если порядок не определен, а для local явно указано.
твоя прога что-нибудь выводит на экран/файл? А лучше запускай в screen - сможешь подключиться и вживую увидеть.
добавь в скрипт запуска
потом сравнит с тем, что выдает от рута, когда прога работает
Да, текст выводится исправно
Да, я вывожу данные с ISA-шины на экран, строчки бегут, однако данные не верны.
Раз уж моя задача выполняется последней, тогда под какими правами запускается моя задача? У меня на компьютере живет только root, пользователей нет. Особенность записи в ISA-шину в том, что необходимо писать и читать из нее под рутом. Может в этом дело?
Предыдущие две строки кода ввести перед запуском моей программы в шелловском запускающем файле типа runme.sh?
1-я строка
2-я строка
/path_to_myfile/myfile
да. только, если он в
да. только, если он в /etc/local.d/ то должен заканчиваться на ".start"
ps певрой строчкй обычно пишут
#!/bin/sh
Запуск надо бы
Запуск надо бы по
смотреть. И еще в /var/log/syslog...
И необязательно "о вашей программе" там будет - скорее наоборот, будет сказано, что неверный доступ и т.п.
Кстати, а в своих скриптах вы среду корректно задаете?
P.S. A /var/log/messages - это, видимо, дурные привычки от других дистров... ;) Хотя, конечно, в *никсах все можно поменять.
Заработало!
Ошибка была в моей программе, я выставил неверные задержки при записи в шину. Теперь программа успешно работает с папки "/etc/local.d/myfile.start". Спасибо всем ответившим и прочитавшим тему. Молодцы!
ЧаВо?
http://gentoo.ru/content/chto-eto-znachit-solved-resheno
:wq
--
Live free or die