Чому моя робота не працює? [зачинено]


-1

Я прочитав через 20 запитань щодо завдань cron і того, що вам не потрібно встановлювати, і я все це зробив, не маркуйте це як копію. Тож мій сценарій такий:

#!/bin/bash

openRTSP_process_ids=(`/bin/ps -fu $USER | /bin/grep "openRTSP" | /bin/grep -v "grep" | /bin/grep -v $0 | /usr/bin/awk '{print $2}'`)
echo $openRTSP_process_ids
for i in "${openRTSP_process_ids[@]}"
do
    if [ -n "$i" ]; then
        echo $i
        kill -1 $i
    fi
done

і мій crontab виглядає так:

#SHELL=/bin/bash
PATH=/home/username/bin:/home/username/.local/bin:/opt/OpenPrinting-Gutenprint/sbin:/opt/OpenPrinting-Gutenprint/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap$

43,41,26,21,16,12,1,7,48,46,33,49,54,57,59,4,9,14,19,24,27,29,32,34,39,44 * * * * bash /home/username/Documents/stop_openRTSP &>> /home/username/stop.log
50,55,0,5,10,15,20,25,30,35,40,45 * * * * /home/username/Documents/start_openRTSP

Я спробував це зі стандартною оболонкою sh і оболонка bash не працює. Я спробував перенаправити вихід на бот файлу журналу за допомогою перенаправлення & >> bash та 2> & 1 sh перенаправлення, але файл журналу просто порожній. Я спробував купу речей, але процес ніколи не вбивався, але вони роблять, коли я це роблю за допомогою командного рядка.

Крім додавання шляху та оболонки, я написав усі команди з їх повним шляхом. Я перевіряю, чи спрацювало це, дивлячись на ps aux | grep openRTPS і дивлячись на процеси відкриті. Коли я запускаю скрипт з командного рядка, процеси закриваються, але через роботу cron вони просто залишаються відкритими.

У деяких версіях у мене був сенсорний благ на початку, тому я знаю, що цей конкретний скрипт виконує, але не всі команди.


Ви впевнені, що ваше cronоточення налаштоване $USER?
steeldriver

Додайте set -xдо вершини своїх сценаріїв, а потім перегляньте файли журналів, щоб переконатися, що вони роблять те, що ви думаєте, що роблять.
DopeGhoti

OOOOOOOOOOOOOOMYYYYY БОГ. Як я міг пропустити це близько 2 годин. Чорт, дякую, що це працює: D Сьогодні був надто довгий день.
Хакайшин

Чи можу я закрити власне питання? Або я просто видаляю його зараз?
Хакайшин

1
Якщо @DopeGhoti не опублікує свою пропозицію як відповідь, було б корисно майбутнім відвідувачам сайту, якщо ви опублікували його пропозицію та ваші дії як відповідь, а потім позначте це як відповідь, яка спрацювала. Таким чином, ми отримуємо дійсне питання з правильною відповіддю для архіву сайту. Дякую!
0xШепдог

Відповіді:


1

Якщо завдання або сценарії не виконують те, що ви від них очікуєте, одна дуже корисна порада щодо усунення несправностей - додати set -xдо вершини сценарію та перевірити вихід, щоб переконатися, що сценарій робить те, що ви думаєте, що робить. Цілком можливо, ви робите певні припущення чи припущення щодо середовища виконання, які не випускаються з поля.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.