И в sh-скрипте есть место шутке

The Which
Сообщения: 2
Зарегистрирован: 08.10.2011 22:21
Ник с it-ru.de: верифицирован

Re: И в sh-скрипте есть место шутке

Сообщение The Which »

Прикольно! )))
Аватара пользователя
Вий
Сообщения: 6237
Зарегистрирован: 22.09.2011 13:00
Ник с it-ru.de: верифицирован
Где: Минск
Род занятий: Программист ;)
Интересы: разные...

Re: И в sh-скрипте есть место шутке

Сообщение Вий »

Пока вы тут ржОте...

Как кошерным образом получить PID процесса, запущенного под sudo?
Вий есть колоссальное создание простонародного воображения...

"...Когда хотят сделать людей добрыми, мудрыми, свободными, воздержанными, великодушными, то неизбежно приходят к желанию их всех перебить." Анатоль Франс
Аватара пользователя
Китаец
Благодарил (а): 1 раз
Сообщения: 11889
Зарегистрирован: 22.09.2011 09:35
Ник с it-ru.de: верифицирован
Веб-сайт: http://jiabaoyu.de

Re: И в sh-скрипте есть место шутке

Сообщение Китаец »

Вий писал(а):Пока вы тут ржОте...

Как кошерным образом получить PID процесса, запущенного под sudo?
Наверно тут всё сложнее чем кажется?

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

ps --user <пользователь, из под которого запущен sudo> | grep sudo | grep -v sudo  | awk '{print $1}'
В цепочку с grep'ами можно еще название приложения добавить.

:oops:
Изображение
Аватара пользователя
Ravinger

Re: И в sh-скрипте есть место шутке

Сообщение Ravinger »

Китаец писал(а): :shock: Как? Ravinger, раскройте мысль, пожалуйста!
Элементарно, Холмс. :) Достаточно построить таблицу, где Р1 - возвращенный код mycoolprog1, Р2 - возвращенный код mycoolprog2, а Р3 - код, возвращенный скриптом (естественно выводится 0 или (не 0)=1 :

Р1 что-то Р2 = Р3
-------------------
0 что-то 0 = 0
0 что-то 1 = 1
1 что-то 0 = 1
1 что-то 1 = 1

Дальше остается угадать операцию под названием "что-то". :)
atar писал(а): Но это совсем не то что происходит, в чём и состоит шутка.
А он точно этого хотел? А то как раз получается, что вернется накосячкa, если хоть одна из программ вернет таковую. Прелесть в том, что в данном случае "false"=1 :)
Аватара пользователя
Вий
Сообщения: 6237
Зарегистрирован: 22.09.2011 13:00
Ник с it-ru.de: верифицирован
Где: Минск
Род занятий: Программист ;)
Интересы: разные...

Re: И в sh-скрипте есть место шутке

Сообщение Вий »

Китаец писал(а):
Вий писал(а):Пока вы тут ржОте...

Как кошерным образом получить PID процесса, запущенного под sudo?
Наверно тут всё сложнее чем кажется?

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

ps --user <пользователь, из под которого запущен sudo> | grep sudo | grep -v sudo  | awk '{print $1}'
В цепочку с grep'ами можно еще название приложения добавить.

:oops:
Теоретически, должен работать следующий код:

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

sudo dd if=/dev/zero of=/dev/null bs=16K & dd_pid=$! ; echo pid = ${dd_pid}
И вроде бы на тестовом компе всё нормально:

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

test@test-pc$ sudo dd if=/dev/zero of=/dev/null bs=16K & dd_pid=$! ; echo pid = ${dd_pid}
[1] 13438
pid = 13438

test@test-pc$ ps -A | grep dd
13438 pts/8    00:00:02 dd
Но на другом компе с той же Ubuntu (правда, версия другая) PID таки отличается от того, что показывает ps -A.
Вий есть колоссальное создание простонародного воображения...

"...Когда хотят сделать людей добрыми, мудрыми, свободными, воздержанными, великодушными, то неизбежно приходят к желанию их всех перебить." Анатоль Франс
Аватара пользователя
Ravinger

Re: И в sh-скрипте есть место шутке

Сообщение Ravinger »

Вий, а в "pidof" системе нет случайно? Убунту не знаю, а в СуСЕ вроде он по умолчанию ставится например.
Аватара пользователя
Китаец
Благодарил (а): 1 раз
Сообщения: 11889
Зарегистрирован: 22.09.2011 09:35
Ник с it-ru.de: верифицирован
Веб-сайт: http://jiabaoyu.de

Re: И в sh-скрипте есть место шутке

Сообщение Китаец »

Ravinger писал(а):Вий, а в "pidof" системе нет случайно? Убунту не знаю, а в СуСЕ вроде он по умолчанию ставится например.
да, кстати! В дебиане есть!

А еще ведь можно заглянуть в *.pid файл приложения, тут:
/var/run/
или тут:
/home/user/.<имя приложения>

:oops:
Изображение
Аватара пользователя
Вий
Сообщения: 6237
Зарегистрирован: 22.09.2011 13:00
Ник с it-ru.de: верифицирован
Где: Минск
Род занятий: Программист ;)
Интересы: разные...

Re: И в sh-скрипте есть место шутке

Сообщение Вий »

Ravinger писал(а):Вий, а в "pidof" системе нет случайно? Убунту не знаю, а в СуСЕ вроде он по умолчанию ставится например.
Есть.
Пока буду использовать его.
А если там несколько процессов с одинаковым именем?
Вий есть колоссальное создание простонародного воображения...

"...Когда хотят сделать людей добрыми, мудрыми, свободными, воздержанными, великодушными, то неизбежно приходят к желанию их всех перебить." Анатоль Франс
Аватара пользователя
Китаец
Благодарил (а): 1 раз
Сообщения: 11889
Зарегистрирован: 22.09.2011 09:35
Ник с it-ru.de: верифицирован
Веб-сайт: http://jiabaoyu.de

Re: И в sh-скрипте есть место шутке

Сообщение Китаец »

Вий писал(а):
Ravinger писал(а):Вий, а в "pidof" системе нет случайно? Убунту не знаю, а в СуСЕ вроде он по умолчанию ставится например.
Есть.
Пока буду использовать его.
А если там несколько процессов с одинаковым именем?

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

 
 2077 ?        Ss     0:00 /usr/sbin/smbd -D
 2140 ?        S      0:00 /usr/sbin/smbd -D

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

pidof smbd
2140 2077
Изображение
atar
Сообщения: 102
Зарегистрирован: 23.09.2011 11:23

Re: И в sh-скрипте есть место шутке

Сообщение atar »

Ravinger писал(а):
Китаец писал(а): :shock: Как? Ravinger, раскройте мысль, пожалуйста!
Элементарно, Холмс. :) Достаточно построить таблицу, где Р1 - возвращенный код mycoolprog1, Р2 - возвращенный код mycoolprog2, а Р3 - код, возвращенный скриптом (естественно выводится 0 или (не 0)=1 :

Р1 что-то Р2 = Р3
-------------------
0 что-то 0 = 0
0 что-то 1 = 1
1 что-то 0 = 1
1 что-то 1 = 1

Дальше остается угадать операцию под названием "что-то". :)
Таблица истинности неправильная.
Ravinger писал(а):
atar писал(а): Но это совсем не то что происходит, в чём и состоит шутка.
А он точно этого хотел?
Да, точно. Это мой собственный код, написанный под действием стресса и нехватки времени. Приложение, за которым он следит, капризное, но обычно работает, поэтому то что о его неработе иногда не сообщалось никто не заметил. Но вот дошли у меня до этого угла, и посмеялся я шутке, которую сам себе и подложил.
Ravinger писал(а): А то как раз получается, что вернется накосячкa, если хоть одна из программ вернет таковую. Прелесть в том, что в данном случае "false"=1 :)
Не вернётся. Т.е. вернётся но не всегда. В этом и шутка. Я тоже не сразу увидел, но когда увидел - долго смеялся.
Ответить