Как добавить выполнение своей программы в автозагрузке? [РЕШЕНО]

Привет всем форумчанам! Положение следующее: мне необходимо добавить запуск своего двоичного файла на исполнение после включения питания. Я пробовал переименовывать свой файл в myfile.start и класть его в папку "/etc/local.d/". В списке процессов моя программка появляется, однако нет обращения из нее к портам ввода/вывода. Я читаю и пишу в ISA-шину через /dev/port. Если же я запускаю эту же программу myfile.start вручную, зайдя под рутом в консоли, то программа работает нормально. Думаю, что необходимо запускать мою программу после полной загрузки всех служб "Генту", а не при запуске из "/etc/local.d". Я пробовал добавлять мой файл в "/etc/init.d/myfile.start", обращения к портам ввода/вывода нет, хотя программа и запускается. Что ещё можно предпринять? Как запускать мою программу последней? Работаю по рутом по умолчанию, пользователей в системе больше нет. Буду рад совету, пишите.

Embedder написал(а): Привет

Embedder написал(а):
Привет всем форумчанам! Положение следующее: мне необходимо добавить запуск своего двоичного файла на исполнение после включения питания. Я пробовал переименовывать свой файл в myfile.start и класть его в папку "/etc/local.d/". В списке процессов моя программка появляется, однако нет обращения из нее к портам ввода/вывода. Я читаю и пишу в ISA-шину через /dev/port. Если же я запускаю эту же программу myfile.start вручную, зайдя под рутом в консоли, то программа работает нормально. Думаю, что необходимо запускать мою программу после полной загрузки всех служб "Генту", а не при запуске из "/etc/local.d". Я пробовал добавлять мой файл в "/etc/init.d/myfile.start", обращения к портам ввода/вывода нет, хотя программа и запускается. Что ещё можно предпринять? Как запускать мою программу последней? Работаю по рутом по умолчанию, пользователей в системе больше нет. Буду рад совету, пишите.

Скрипты в /etc/local.d/*.start запускаются последними после запуска всех инит скриптов. Попробуйте написать ининт скрипт, где в зависимостях укажите, что нужно ждать вашей программе, но сдаётся мне, что проблема в чём-то другом.

Заработало!

Так и вышло, что причина неполадки была не в запуске моей программы, а в самой программе. Я забыл поменять выдержки времени между записями в шину, поэтому и не работала запись в неё. Сейчас всё работает из папки "/etc/local.d/myfile.start".
Спасибо всем ответившим и просто прочитавшим тему. Молодцы!

А что в логах?

А что в логах?

В /var/log/messages ничего не

В /var/log/messages ничего не пишется о моей программе.
Я пробовал делать мою программу демоном. Итог тотже: при запуске вручную всё работает, при автозагрузке - нет.
Насколько я понял, "Генту" запускает службы из папки "/etc/init.d/" по алфавиту сверху вниз. Тогда выходит, что служба "local" запускается далеко не последней. Может в этом дело?

нет, local запускается

нет, local запускается последней. По алфавиту запускается если порядок не определен, а для local явно указано.

твоя прога что-нибудь выводит на экран/файл? А лучше запускай в screen - сможешь подключиться и вживую увидеть.
добавь в скрипт запуска

pwd > /root/pwd
env > /root/env

потом сравнит с тем, что выдает от рута, когда прога работает

Да, текст выводится исправно

Да, я вывожу данные с ISA-шины на экран, строчки бегут, однако данные не верны.
Раз уж моя задача выполняется последней, тогда под какими правами запускается моя задача? У меня на компьютере живет только root, пользователей нет. Особенность записи в ISA-шину в том, что необходимо писать и читать из нее под рутом. Может в этом дело?
Предыдущие две строки кода ввести перед запуском моей программы в шелловском запускающем файле типа runme.sh?
1-я строка
2-я строка
/path_to_myfile/myfile

да. только, если он в

да. только, если он в /etc/local.d/ то должен заканчиваться на ".start"
ps певрой строчкй обычно пишут
#!/bin/sh

Запуск надо бы

Запуск надо бы по

dmesg

смотреть. И еще в /var/log/syslog...
И необязательно "о вашей программе" там будет - скорее наоборот, будет сказано, что неверный доступ и т.п.
Кстати, а в своих скриптах вы среду корректно задаете?

P.S. A /var/log/messages - это, видимо, дурные привычки от других дистров... ;) Хотя, конечно, в *никсах все можно поменять.

Заработало!

Ошибка была в моей программе, я выставил неверные задержки при записи в шину. Теперь программа успешно работает с папки "/etc/local.d/myfile.start". Спасибо всем ответившим и прочитавшим тему. Молодцы!

ЧаВо?

Embedder написал(а):
Ошибка была в моей программе, я выставил неверные задержки при записи в шину. Теперь программа успешно работает с папки "/etc/local.d/myfile.start". Спасибо всем ответившим и прочитавшим тему. Молодцы!

http://gentoo.ru/content/chto-eto-znachit-solved-resheno

:wq
--
Live free or die

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".