Помогите написать скрипт закрытия процесса (Скрипт)

Модератор: Модераторы разделов

Ответить
val64
Сообщения: 7
ОС: линукс

Помогите написать скрипт закрытия процесса

Сообщение val64 »

Добрый вечер.
Помогите написать скрипт закрытия процесса(программы),через определенное количество запусков например через пять запусков,программа
бы не запускалась и выдавала сообщение.
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4823
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: Помогите написать скрипт закрытия процесса

Сообщение SLEDopit »

А что у вас не получается?

И на чём пишете? Вводных данных явно не хватает.

И _обязательно_ показывайте что уже пробовали.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: Помогите написать скрипт закрытия процесса

Сообщение Vascom »

Хотите запускать программу через скрипт или чтобы скрипт мониторил запуск программы?
Попахивает системой shareware, не гуд.
Спасибо сказали:
val64
Сообщения: 7
ОС: линукс

Re: Помогите написать скрипт закрытия процесса

Сообщение val64 »

Vascom писал(а):
26.10.2016 10:19
Попахивает системой shareware, не гуд.

Я еще этот термин не знаю shareware :rolleyes:
Не давно начал осваивать Linux Debian.
Есть программа управление LPT портом в Linux написана на Си (включение,выключение различных устройств)
Вот хотелось через определенное количество запусков выдавало сообщение и прекращала работу
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: Помогите написать скрипт закрытия процесса

Сообщение Vascom »

Так нет ни чего проще.
Запускай эту программу через скрипт. При каждом запуске проверяй номер запуска из файла и пиши туда же увеличенное на единицу число. При достижении нужного числа - выдавай сообщение.
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: Помогите написать скрипт закрытия процесса

Сообщение Vascom »

Что-то вроде:

Код: Выделить всё

#!/bin/bash

COUNT_FILE="/tmp/count_file"
MAX_COUNT=5

if [ -e "$COUNT_FILE"]
then
    count=`cat "$COUNT_FILE"`
else
    count=1
    echo $count > "$COUNT_FILE"
fi

if [ $count -lt $MAX_COUNT ]
then
    count=$[$count+1]
    echo $count > "$COUNT_FILE"
    my_prog
else
    echo "Max run count reached."
fi
Спасибо сказали:
val64
Сообщения: 7
ОС: линукс

Re: Помогите написать скрипт закрытия процесса

Сообщение val64 »

Работает!
В этой строке
valera@valera:~$ /home/valera/abc.bs
/home/valera/abc.bs: line 5: /home/valera/count_file: Отказано в доступе:
а все работает счетчик в файле count_file считает-перезаписывается до пяти,после пяти Max run count reached.как положено.
Отказано в доступе: почему пишет?
И еще вопрос как из скрипта вызвать терминал с сообщением Max run count reached,или как то по другому можно выводить сообщения.
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: Помогите написать скрипт закрытия процесса

Сообщение Vascom »

Значит у тебя нет прав доступа к этому файлу или каталогу. Я же не даром написал путь к /tmp сразу.
Выводить сообщения можно через notify-send.

Ну и когда показываешь в какой строке ошибка, приводи и сам скрипт, раз ты его изменил уже.
Спасибо сказали:
val64
Сообщения: 7
ОС: линукс

Re: Помогите написать скрипт закрытия процесса

Сообщение val64 »

Код: Выделить всё

#!/bin/bash

#COUNT_FILE="/home/valera/count_file"
COUNT_FILE="/tmp/count_file"
MAX_COUNT=5
if [ -e `"$COUNT_FILE"`]
then
    count=`cat "$COUNT_FILE"`    # Одинарные кавычки сюда поставил,без них тоже ошибка была
else
    count=1
    echo $count > "$COUNT_FILE"
fi

if [ $count -lt $MAX_COUNT ]
then
    count=$[$count+1]
    echo $count > "$COUNT_FILE"
    /usr/bin/linuxcnc '/home/valera/linuxcnc/configs/RABOHAI_1516F1.6_0/1516F1.ini'
else
    echo "Max run count reached."
fi

С /tmp тоже также,но ведь работает переменная увеличивается?

Выводить сообщения можно через notify-send в место echo?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Помогите написать скрипт закрытия процесса

Сообщение Bizdelnick »

val64 писал(а):
26.10.2016 14:57
if [ -e `"$COUNT_FILE"`]

Уберите обратные апострофы и добавьте пробел перед закрывающей квадратной скобкой. И лучше вместо -e использовать -f. Или даже так:

Код: Выделить всё

if [ -f "$COUNT_FILE" -a -r "$COUNT_FILE" ]
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: Помогите написать скрипт закрытия процесса

Сообщение Vascom »

val64 писал(а):
26.10.2016 14:57
Выводить сообщения можно через notify-send в место echo?

Нет, в иксах. В консоли достаточно echo.
Спасибо сказали:
val64
Сообщения: 7
ОС: линукс

Re: Помогите написать скрипт закрытия процесса

Сообщение val64 »

Вот так все работает. :rolleyes:
Спасибо сказали:
val64
Сообщения: 7
ОС: линукс

Re: Помогите написать скрипт закрытия процесса

Сообщение val64 »

Vascom писал(а):
26.10.2016 15:28
val64 писал(а):
26.10.2016 14:57
Выводить сообщения можно через notify-send в место echo?

Нет, в иксах. В консоли достаточно echo.

При закрытой консоли ни каких сообщений не выводит,если запускать файл .bs с консоли то сообщения пишутся
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: Помогите написать скрипт закрытия процесса

Сообщение Vascom »

И? Что не устраивает?
Спасибо сказали:
val64
Сообщения: 7
ОС: линукс

Re: Помогите написать скрипт закрытия процесса

Сообщение val64 »

Все ОК!
Сделал на zenity --error
Спасибо сказали:
Ответить