Я нашел решение. Вот мой Dockerfile:
FROM i386/ubuntu:16.04 RUN apt-get update RUN apt-get upgrade -y RUN apt-get install -y dbus COPY dbus.conf /etc/dbus-1/session.d/ ENTRYPOINT ["dbus-run-session", "slaveApp"]
И мой dbus.conf:
tcp:host=localhost,bind=*,port=6667,family=ipv4
unix:tmpdir=/tmp
ANONYMOUS
И установите переменную адреса на хосте:
export DBUS_SESSION_BUS_ADDRESS=tcp:host=${containerIp},port=6667,family=ipv4
В моем главном приложении я инициирую соединение (Я использовал Qt):
QDBusConnection::connectToBus("tcp:host=${containerIp},port=6667", "qt_default_session_bus");
Главное приложение теперь может отправлять сообщения подчиненному приложению. Однако я не пытался отправлять сообщения от ведомого к ведущему.
Ответ взят из этого поста :https://stackoverflow.com/a/45487266/6509266
Использование GNUdate
:
[[ $(date -d "-$(date +%d)days month" +%u) = [67] ]] && echo 'Month-End falls on weekend'
Обычно date -d "-$(date +%d)days month"
означает минус дни текущего месяца и добавить месяц к результату; это на самом деле:
date -d'-XXX days + 1month'
где мы вычисляем и получаем XXX
дней с date +%d
.
тест на январь -2021 , который заканчивается в выходные:
[[ $(date -d "-$(date +%d)days 3month" +%u) = [67] ]] && echo 'Month-End falls on weekend'
из man date , %u
— это ФОРМАТ управления днями недели (1..7 ); 1 это Понедельник . поэтому измените 6 и 7 выше в зависимости от календаря вашего региона на выходные дни.
С оболочкой ksh93
:
month='this month'
month='2020-11'
month='November 2020'
if [[ ${ printf '%(%u)T' "last day in $month"; } = [67] ]]; then
print "Last day in $month falls on a weekend"
fi
В оболочке zsh
проверка того, что первый день следующего месяца приходится на воскресенье или понедельник:
zmodload zsh/datetime
strftime -s month %Y-%m # this month
month=2020-11 # given month
last_day_on_a_weekend() {
local TZ=UTC0 y m t
y=${1%-*} m=${1#*-}
if (( ++m > 12 )); then
(( y++ )); m=1
fi
strftime -rs t %Y-%m-%d $y-$m-1
strftime -s t %u $t
[[ $t = [71] ]]
}
if last_day_on_a_weekend $month; then
print "Last day in $month falls on a weekend"
fi