Как стать автором
Обновить

Комментарии 78

Название топика вызвала ассоциацию с Pomodoro
Добавлю, что далеко не всегда можно так вот просто вывести что-то в иксы другого юзера. Даже из рута иногда необходимы определенные манипуляции.
Можно пример?
Нужен файл .Xauthority, там лежит кука, без которой X-сервер не даст к себе подключиться.
Эмм, тогда как ПРАВИЛЬНО послать юзеру в GUI сообщение, подключившись по ssh?
Утащить у него Xauthority, при рутовых правах это обычно можно.
С рутовыми правами можно и sudo или su сделать. :)
Осталось поставить на неё линупс. Причем тут вообще эта штука? Не думаю, что кто-то ради вышеуказанных целей захочет покупать кухонный таймер со звоночком, когда есть ПК.
Насколько я понимаю, «цель» — засечь 25 минут.
И зачем для этого нужен «линупс» :-/?
Некоторые вешают на стену планшет.
Насколько я знаю там лимит в 60 секунд. Поправьте если ошибаюсь.
60 минут.
Но там деления по 5 на картинке. То есть получается дискретизация по 5 мин?
Вы никогда кухонным таймером не пользовались?) Это же обычный egg timer :)
они везде одинаковые
Откровенно говоря, даже никогда в руках не приходилось держать. Даже если что-то и готовлю, то не по времени, а до состояния готовности.
И как Вы определяете состояние готовности яиц? :)
Жареных — их видно… Если вареных — их сложно переварить, 10-15 минут и готово. Но такие вещи я не засекаю, собственного ощущения времени хватает для такого.
Кстати, отличное решение! :)

Спасибо за ссылку.

Не для всего подходит, но в определённых ситуациях может быть весьма полезен. Мне вообще нравятся механические таймеры. На геофаке СПбГУ, где проводятся питерские линуксовки, видел классную розетку, как раз с аналоговым таймером. На нём можно выставить время, и, как только это время проходит, розетка отключается.

Ещё мне очень нравились старые микроволновки с двумя ручками: время и мощность. И никакого привыкания к интерфейсу — эти ручки везде работали одинаково.
У меня дома такая микроволновка. Больше 10 лет. Время, мощность и режим — микро, гриль или комби.
У меня такая Siemens отлично работала лет 15, по-моему, а потом отдали кому-то (переезжали, скорее всего).

Они вообще очень надёжные были.
С удивлением узнал что для sleep в linux можно передавать параметры не только в секундах, спасибо.
Но в UNIX это не сработает, по стандарту можно передавать только целое количесво секунд.
Впрочем, тут надо учитывать, что команда не будет выполнена, если вы закроете терминал.

Я думаю самое простое решение для этого — screen.

Но по теме, думаю лучше sleep, юзать команду at. Это вроде одноразового крона. Она не только понимает дату и время, но так же переменые вроде tomorrow, midnight и тому подобные.

Извиняюсь, что не заметил про at, в самом топике.
Угу. Я думал про screen тоже написать, но ограничился упоминанием о том, что есть много разных способов это сделать. В основном потому что screen встречается реже, чем nohup, то есть обычно его нужно специально устанавливать.
Ну, тем, кто не знает ( к примеру новичкам), хорошо советовать много разных и полезных программ. Я иногда так со статьи или блога какого узнаю много полезных программ, которые упростили мне жизнь. Тот же at мне посоветовали, когда я хотел решить проблему на обычном кроме.
s/кроме/кроне (cron)
fg/bg к Вашим услугам.
При закрытии терминала задача в bg всё равно получит SIGHUP. Как по умолчанию обрабатывается такой сигнал тоже известно.
Она действительно привязывается к логину на конкретном tty? Тогда только screen
Или nohup, как предложено в статье. =)
Или disown в bash, как упомянули ниже.
echo "DISPLAY=":0" xmessage ':)'" | at 14:25
Разве это сработает? Я думаю, тут будет проблема с кавычками, так как вы открыли «"» и закрываете после «=». Надо или «\"» или юзайте только «'» внутри. Во втором случаем, надо быть осторожным, так как поведение у одинарных и двойных скобок разные. А вообще, я когда юзаю DISPLAY, я не использую скобок, так как переменая одна, то можно просто вот так (к примеру фильм запустить по ссш на компе): «DISPLAY=:0 mplayer foobar.mkv»
Знаете, самое забавное, что сработает.

Потому что echo "DISPLAY=":0" xmessage ':)'" выводит:

DISPLAY=:0 xmessage ':)'

Соответственно, работает и так:

echo "DISPLAY=:0 xmessage ':)'"

И так тоже:

echo "DISPLAY=\":0\" xmessage ':)'"

Но в тексте я, пожалуй, поменяю, чтобы народ не путать. Спасибо! :)
Даже так — echo DISPLAY=:0 xmessage "':)'"
Но это c echo и в данном случае, лучше всегда давать примеры, которые будут работать везде, у читателей разный же уровень.
«Впрочем, тут надо учитывать, что команда не будет выполнена, если вы закроете терминал.»

 sleep 25s && xmessage 'Hello habr' & disown
В общем-то достаточно & в конце.
Не всегда. При использовании & команда будет выполнена, если нажать Ctrl + D (или выполнить exit), потому что процесс останется запущен (как, впрочем, и командная оболочка). А вот если закрыть окно эмулятора терминала, то тогда без disown (или использования другого метода выполнения программ в фоновом режиме) ничего выполнено не будет.
Без disown никак, иначе & сделает его работающим в фоне, но процесс от терминала не отвяжет.
Его будет видно через команду jobs.
sleep 60; notify-send 'Hello'
Да, тоже весело. :)

Можно ещё пиктограммы добавлять:

notify-send -i /usr/share/icons/gnome/scalable/devices/phone-symbolic.svg "Позвонить Андрею"
А в OS X вмето xmessage можно использовать:

osascript -e 'tell app "Finder" to display dialog "Hey!"'
или просто say "Hey"
А в iOS таймеры, будильники и напоминалки выставлять ещё проще — голосом: «Напомни через 50 минут разобрать стиральную машину» или «Поставь таймер на 20 минут», или «Разбуди меня через 7 часов» :)
Вы наверное хотели сказать «Remind me after 50 minutes to get laundry from washing machine », «Set timer for 20 minutes» и «Wake me up in 7 hours»?
Нет, я хотел сказать, что iOS понимает разговорную речь.
А mxx наверное хотел сказать, что русскую разговорную речь она не понимает.
Автор, если вы уж время засекаете, pink_floyd-time.flac был бы куда адекватнее и по звуку, и по названию :)
Простите, но любой, знающий основы консоли такое может сделать однострочником на любом языке программирования, не считая кучу виджетов, и висящих в трее утилит.
По крайней мере, здесь перечислено довольно много разных решений, и теперь любой может выбрать из них наилучшее для себя.
Не понимаю смысл данного поста. Всё сводится к тому что надо поставить задачу, а что использовать для её решения — дело десятое, хоть простейший телефон, хоть навороченный смарт, хоть *nix-shell, хоть, простите меня, винду :)
Кстати моим первым приложением на C# был этот самый будильник-таймер — висит себе в трее и кушать не просит.
irony_mode on
Ну а зачем тогда статьи на хабре — всё есть в гугле.
irony_mode off

Расчитано видимо на новеньких. Да и я к примеру если знаю, или не интересно — не то что коммент не пишу, я под кат не захожу.
Как известно, статья на хабре сильна комментариями. Я вот лично для себя много полезного нашел, хотя вроде и не новичок в линуксах. Иногда случайная мысль, сказанная кем-то, может перевернуть мышление на 180 градусов.
Вот пожалуй это единственный плюс.
Хотя таких топиков на половине юниксовых форумов — пруд пруди.
… Для тех кто не умеет искать элементарные вещи?
Простите, не удержался, но вставить оператор ожидания[sleep/wait] $временной_интервал $символ_конвеера команда [плеер, текстовое/графическое сообщение] по вкусу в консоли,
или же засунутую в штатный же системный планировщик команду…
Ну хочу спорить конечно, но мне и ядро собрать и генту установить легко, а есть люди, что консоль в глаза не видели.
Если они захотят найти документацию по консоли им плюс и гугль в руки — большая часть хороших вещей и основ по всем языкам программирования давно уже переведена на русский — не считая кучи сайтов с советами на все случаи. А писать ради «писать» и заработать кармы и плюсиков такие топики смысла не вижу — это не блог и не лор.
Как раз пишу такую утилиту и тут подумал, может нафиг все ей свой интерфейс для отображения конца времени, а советы из поста использовать.
А возможно ли вывести сообщение как всплывающую подсказку в gnome? Ну потипу той, которая выскакивает при соединении с сетью… Было бы просто шикарно.
inotify всякие, osd* пакеты. копать куда-то туда.
Конечно можно!

notify-send, кстати, упоминался выше в комментариях.
Вот спасибо. Теперь можно написать скрипт, добавить задание в cron и получится чудная напоминалка.
Слишком как-то все просто, ничего особенного и интересного.
Все гениальное просто.
И функционально.
Мега будильник

sleep 8h ; rm -rf /
Ну и будильник на «за минуту до этого». Если не проснетесь, то…
Ну, допустим, так не сработает (с современными версиями rm). :)

$ rm -rf /
rm: it is dangerous to operate recursively on `/'
rm: use --no-preserve-root to override this failsafe

Но идея понятна, да.
НЛО прилетело и опубликовало эту надпись здесь
А чего там интересного в выхлопе-то? Куча «permissions denied» и снесённый хомяк в результате :)
screen «sleep 25m; mplayer /media/5C36-A8EA/MUSIC/Cliff_Lin_-_Move_192.mp3» только технохардрок.
Могу посоветовать Джастина Бибера, но проснётесь, скорее всего, разбитым.
НЛО прилетело и опубликовало эту надпись здесь
Узнал новую команду — напиши на хабре.
С нетерпением ждём статей на следующие удивительные темы:
Перезагрузка компьютера по magic sysrq (echo b > /proc/sysrq-trigger)
Чатик в консоли без wall (по номеру процесса шелла echo hello > /proc/SHELL_PID/fd/0).
Удаление файла с именем из непечатаемых символов по номеру инода (ls -i ; find -inum NUM -delete).
круто, может вы пост оформите? .)
Джигиты используют для этого /dev/pts (я про чатик).
В кедах можно вызывать уведомления через kdialog, кстати.
kdialog --passivepopup 'пора вставать!' 4

image
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.