Поскольку я еще не нашел, как использовать systemctl edit
в скрипте, лучше всего было бы смоделировать команду systemctl edit sddm
и поместить переопределение в каталог /etc/systemd/system, а служебные единицы — в /usr. /lib/systemd/system может быть изменен при обновлении пакетов:
UNIT='sddm.service'
DIR="/etc/systemd/system/${UNIT}.d"
mkdir $DIR
echo -e "[Service]\nExecStartPre=/bin/sleep 5" > ${DIR}/override.conf
systemctl daemon-reload
Это должно быть примерно эквивалентно тому, что делает systemctl edit sddm
.
#!/bin/bash
echo "I am the parent process and will launch a child and wait until it's finished"
/path/to/child.sh
echo "The child has finished and it's exitstatus is: $?"
Вопрос 2 :Теоретически это невозможно. На практике вы подражаете этому поведению. Если вы разветвляете и обрабатываете дочерний элемент как родитель, а родитель — как дочерний, то «новый родитель» будет иметь PPID «старого родителя»
.Вопрос 3 :Статус выхода дочернего элемента будет (в bash, и большинство оболочек )заканчиваются в var $?
родителя. См. сценарий в моем ответе на вопрос 1.