предварительное семя late_command сценарий: область не могла соединиться с системной шиной

Я использую следующее предварительное семя:

d-i preseed/late_command string \
    in-target wget http://my.server.adress.com/postinst.sh -O /root/postinst.sh; \
    in-target /bin/bash /root/postinst.sh

И в сценарии, в конце его, я делаю:

/usr/bin/expect << EOF
set timeout 10
spawn realm join --user=usertojoinad mydomain.com
expect "Password for usertojoinad:"
send "TheJoinAdPassword\r";
expect eof
EOF

Все другие команды в postinst.sh выполняются правильно, но для этой команды я добираюсь:

realm: Couldn't connect to system bus: Could no connect: No such file or directory". Sadly it does not say which file

Эта точно та же самая команда работает, если я ввожу ее в терминале в недавно установленном рабочем столе после того, как я вхожу в систему и sudo su -.

ppf на #ubuntu в freenode предположил, что у пользователя нет сессии, поэтому dbus не доступен. Он предложил попробовать: export XDG_RUNTIME_DIR="/run/user/$UID" DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" . Все же это не решает проблему.

Какая-либо подсказка на этом?

Править: Я пытался sudo su -l -c но это, кажется, не решает эту проблему. При выполнении sudo su -l Я добираюсь: pan_systemd(su:session): Failed to connect to system bus: No such file or directory

0
задан 9 August 2018 в 06:37

2 ответа

Я мог сделать то, что я хочу путем создания сервиса, которые приходят последними. Это - вероятно, не лучший способ сделать это, таким образом, я все еще хотел бы решить эту проблему. Тем временем вот то, как я сделал это:

в postinst.sh:

pam-auth-update --package --enable mkhomedir
wget --quiet http://my.server.adress.com/join_ad.sh -O /root/join_ad.sh
wget --quiet http://my.server.adress.com/firstbootsetup.sh -O /root/firstbootsetup.sh
chmod 760 /root/join_ad.sh
chmod 760 /root/firstbootsetup.sh
touch /root/firstboot.flag
wget --quiet http://my.server.adress.com/firstbootsetup.service.rename.txt -O /etc/systemd/system/firstbootsetup.service
systemctl enable firstbootsetup.service

в firstbootsetup.service.rename.txt:

[Unit]
Description=FirstBootSetup
ConditionPathExists=/root/firstboot.flag

[Service]
Type=idle
RemainAfterExit=yes
ExecStart=/root/firstbootsetup.sh
ExecStartPost=/bin/rm -f /root/firstboot.flag

[Install]
WantedBy=multi-user.target

в firstbootsetup.sh:

#!/bin/bash

/root/join_ad.sh
rm -f /root/join_ad.sh

в join_ad.sh:

#!/bin/bash

realm discover mydomain.com

/usr/bin/expect << EOF
set timeout 10
spawn realm join --user=usertojoinad mydomain.com
expect "Password for usertojoinad:"
send "TheJoinAdPassword\r";
expect eof
EOF

Примечание: Я запустил с этого сообщения https://serverfault.com/questions/853396/run-script-on-first-boot

0
ответ дан 28 October 2019 в 04:42

используйте опцию - устанавливают =/в сценарии 4ex:

#!/bin/bash

realm discover mydomain.com

/usr/bin/expect << EOF
set timeout 10
spawn realm join --install=/ --user=usertojoinad mydomain.com
expect "Password for usertojoinad:"
send "TheJoinAdPassword\r";
expect eof
EOF
0
ответ дан 28 October 2019 в 04:42

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

Похожие вопросы: