Ниже некоторая команда для извлечения только IP-адресов:
ifconfig | awk -F':' 'NR==2{split($2,a," "); print a[1]}'
ip -f inet addr show dev eth0 | sed -n 's/^ *inet *\([.0-9]*\).*/\1/p'
ifconfig eth0 | sed -n 's/^ *inet addr:*\([.0-9]*\).*/\1/p'
Проверять Общедоступный IP
curl ifconfig.me
Это то, что я использую для выхода из системы с помощью xmonad (после использования wmctrl
для закрытия всех открытых окон):
session=`loginctl session-status | head -n 1 | awk '{print $1}'`
loginctl terminate-session $session
Я не уверен, зачем вам нужны дополнительные привилегии для loginctl terminate -session
- у меня это работает без такой необходимости.
Также обратите внимание, что существуют разные способы получения идентификатора сеанса. В этом примере я просто беру его непосредственно из самого loginctl
. Также есть $ XDG_SESSION_ID
(как вы написали) и / proc / self / sessionid
.