ユーザーディスプレイからrootとしてコマンドを実行すると、期待どおりに機能しません。

ユーザーディスプレイからrootとしてコマンドを実行すると、期待どおりに機能しません。

xdotoolルートシェルでユーザーモニターの操作(マウスの移動)を実行しようとすると、次の結果が表示されます。

# DISPLAY=:0 mousemove_relative 1 1
No protocol specified
Error:Can't open display: (null)
Failed creating new xdo instance
#

なぜこれがうまくいかないのですか?


スクリプト:

#!/bin/bash

exec=`/usr/sbin/nethogs -t -c 1| awk '/smbd/ {print $2}'`

sent=$exec

echo "result: "$sent
sent=$(echo "($sent+0.5)/1" | bc)
echo "rounded: "$sent
if [[ $sent -gt 0 ]]
then 
    echo "music is playing"
    `DISPLAY=:0 xdotool mousemove_relative 1 1`
else
    echo "quiet"
fi

私はこれを得ます/var/mail/root

Waiting for first packet to arrive (see sourceforge.net bug 1019381)
result: 6.73438
rounded: 7
music is playing
No protocol specified
Error: Can't open display: (null)
Failed creating new xdo instance

ベストアンサー1

私は答えを見つけましたhttps://www.reddit.com/r/linux/comments/2clob0/help_with_cron_though_its_probously_not_really_a/?st=j7e4jv37&sh=e83bf930

スクリプトに以下を追加する必要がありました。

export DISPLAY=:0
export XAUTHORITY=/home/username/.Xauthority

おすすめ記事