Контроль сценария, запущенного rc.local

Это могло бы работать на Вас:

sed '1d;s|\([^,]*\),\([^,]*\),[^,]*,\([^,]*\).*|sed "1s/scriptname/\1/;5s/jobname/\2/" template >\3|' file.csv |
sh
1
17.04.2013, 23:50
2 ответа

Если Вы используете rc.local Вы, вероятно, используете некоторый sysV init также? Вы могли добавить строку

pc:2345:respawn:/usr/local/bin/pc

кому: /etc/inittab. Эта строка означает, что программа будет запущена для runlevels 2,3,4 и 5 и будет автоматически перезапущена, когда это завершится, т.е. катастрофические отказы.

3
27.01.2020, 23:17
  • 1
    В этом случае мне не нужен никакой контрольный инструмент, это? После того как я поместил эту строку, которую я должен буду перезагрузить для помещения его в действительности? –  biz14 17.04.2013, 23:29
  • 2
    @biz14 можно также просто использовать init q или telinit q –  Ulrich Dangel 18.04.2013, 00:13
  • 3
    @biz14: корректный на контроле. init делает это для Вас, пока Вы не заботитесь о деталях о катастрофическом отказе. Как Ulrich указывает, Вы не должны перезагружать. –  Bananguin 18.04.2013, 00:50
  • 4
    @user1129682, если я должен заботиться о деталях катастрофического отказа затем, должен я использовать/etc/inittab. То, как это будет знать, когда мой процесс будет смертью, это будет следить за процессом, является этим? –  biz14 18.04.2013, 06:41
  • 5
    init делает то, что Anthon записал как комментарий в Ваш вопрос. это порождает процесс и наблюдает его. если процесс уничтожается по любой причине, это - respawened. Это что respawn средства в inittab файле. Если необходимо принять специальные меры после того, как программа разрушает Вас, нуждаются в другой программе, которая делает принимает специальные меры, но Вы еще не сказали нам о тех. –  Bananguin 18.04.2013, 11:51

Используя rc.local как предложено user1129682 кажется хорошей идеей. Если Вы хотите быстрое (и грязный) способ видеть, запустилась ли Ваша программа (пере-), можно изменить программу, чтобы послать Вам по электронной почте, как это запускает. Сделать так установку mailutils пакет и имеет Вашу программу C, запускаются как это:

#include <stdlib.h> 

int 
main(int argc, char *argv[])
{
   system("echo | mail -s \"pc started\" your@email.addr");
   return orginal_main(argc, argv);
}

это предполагает что машина pc работает имеет электронную почту, передающую правильно функционирование.

2
27.01.2020, 23:17
  • 1
    много кодов, но который я предполагаю, является лучшим, я вставлю саму основную функцию, чтобы быть первой строкой скорее затем вызов его отдельно? –  biz14 19.04.2013, 16:50
  • 2
    По существу Вам только нужно system() строка и возможное включение stdlib.h если у Вас уже нет того в Вашем источнике. Помещение той строки в Вашем существующем основном прекрасно. (И удостоверьтесь, что заполнили соответствующий адрес электронной почты). Я просто сделал полную тестовую программу прежде, чем отправить, это первоначально возвращает 0 и адаптировало ту возвратную линию. –  Anthon 19.04.2013, 17:24
  • 3
    много и дает мне, некоторое время испытывает все другое возможное решение. Цените все свое знание и время. –  biz14 20.04.2013, 15:45

Теги

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