この単純なスクリプトは、ユーザーがログインしたときにZenity通知を表示します。
case "$PAM_TYPE" in
'open_session' )
if [ "$PAM_SERVICE" = "lightdm" ] ; then
DISPLAY=:0 Sudo -u $PAM_USER notify-send "Hello there!" "Hello"
else
echo "Hello there!"
fi
;;
esac
ただし、これはDISPLAY変数が実際に0の場合にのみ機能します。また、ターミナルまたはリモート(ssh)ログインでは機能しません(明らかに、エコーがどこにもないようです)。これについて私は何ができますか?
次の方法が必要です:
ログイン時に通知を送信するより簡単な方法が存在します(DISPLAY変数を知らない、またはtty
コマンドを使用して端末を識別することなく)。
GNOMEまたは他のデスクトップ環境の起動中に通知を送信するには、/etc/xdg/autostart/foobar.desktop
を使用してスクリプトを呼び出すnotify-send "Hello there!" "Hello"
ファイルを作成する必要があります。例として/etc/xdg/autostart/
を確認してください。既存の.desktop
ファイルのコピーを作成し、名前を変更して、必要に応じて変更できます。 X-GNOME-Autostart-Delay=XX
パラメータを追加して、タスクのXX
秒の遅延を設定することもできます。選択したユーザーに対してのみこれを追加する必要がある場合は、そのユーザーの~/.config/autostart/
を使用して.desktop
ファイルを配置し、このランチャーがアクティブであることをgnome-session-properties
で確認します。
端末またはsshログインで通知を送信するには、/etc/profile.d/
に配置されたスクリプトを使用するか、echo "My Message"
を/etc/bash.bashrc
に直接追加してこの通知を送信できます。どちらも/etc/profile
から呼び出され、インタラクティブシェルへのログインごとに実行されます(仮想端末またはsshログイン)。選択したユーザーに対して、そのユーザーの~/.bash_login
を使用して、そこに必要なメッセージを入力します。 注:/etc/bash.bashrc
および~/.bash_login
の使用は、デフォルトのbash
シェルが使用されている場合に意味があります。ユーザーが/bin/sh/
などの他のシェルを呼び出した場合、これらのファイルは無視されます。