Ubuntu - PHP CLI приложение | notify-send выглядит по-другому cli приложение вызывается через cron

В настоящее время я работаю над созданием приложения командной строки php, и я использую notify-send отправить уведомление в мой Ubuntu 17.10 который теперь идет с гномом.

Уведомления выглядят нормально, и как они должны, когда я вручную запускаю приложение cli в терминале. (вверху, в центре уведомлений)

но когда одно и то же приложение запускается через задание cron, уведомление выглядит совершенно иначе и отображается в другом месте! (в правом верхнем углу)

Я звоню уведомить-отправить в моем приложении, используя exec('notify-send tas)

Проблема, с которой я сталкиваюсь с немного отличающимся уведомлением, заключается в том, что я не могу нажать на гиперссылки! в то время как другой поддерживает нажатие на гиперссылки, а затем он открывает веб-страницу.

Что здесь не так?

0 ответов

После долгих исследований, проб и ошибок. Я пришел к решению ниже!

Код PHP вызовет сценарий оболочки, который фактически отправит libnotify сообщение.

Скрипт bash:


#!/bin/bash
#
# This script shows how to send a libnotify message
# to a specific user.
#
# It looks for a process that was started by the user and is connected to dbus.

# process to determine DBUS_SESSION_BUS_ADDRESS
USER_DBUS_PROCESS_NAME="gconfd-2"

NOTIFY_SEND_BIN="/usr/bin/notify-send"

TITLE=$1
MESSAGE=$2

# get pid of user dbus process
DBUS_PID=`ps ax | grep gconfd-2 | grep -v grep | awk '{ print $1 }'`

# get DBUS_SESSION_BUS_ADDRESS variable
DBUS_SESSION=`grep -z DBUS_SESSION_BUS_ADDRESS /proc/$DBUS_PID/environ | sed -e s/DBUS_SESSION_BUS_ADDRESS=//`
# echo $DBUS_SESSION;

# send notify
 DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION $NOTIFY_SEND_BIN "$TITLE" "$MESSAGE"

Код PHP:

$command = sprintf('/path/to/bash_script.sh "%s" "%s" 2> /dev/null', $title, $message);
system($command);

PS: Это использовалось в приложении командной строки, которое отправляет системное уведомление всякий раз, когда публикуется новый вопрос на stackru.com! (вопросы, соответствующие вашим тегам)

Вы можете проверить это здесь: https://kerneldev.com/2017/12/27/so-notify-a-stack-overflow-question-notifier/

Другие вопросы по тегам