我正在编写一个 bash 脚本来在 Ubuntu 中设置一些服务。我需要reboot
在某些步骤之间使用一些系统。问题是运行reboot
脚本也会中断。有没有办法让脚本保留下来并继续设置?
答案1
这取决于你的系统。我可以举一个 Ubuntu 的例子来说明你可以做什么。
这样的脚本看起来应该是这样的/usr/local/bin/this_script
:
#!/bin/bash
if [ ! -f /usr/share/this_script.progress ] ; then
echo 1 > /usr/share/this_script.progress
cat > /etc/systemd/system/this_script.service <<EOF
[Unit]
Description=this script service
[Service]
ExecStart=/usr/local/bin/this_script
[Install]
WantedBy=multi-user.target
EOF
systemctl enable this_script
echo 2 > /usr/share/this_script.progress
fi
progress=$(</usr/share/this_script.progress)
case $progress is
(1) echo "This should not happen!"
;;
(2) echo 3 > /usr/share/this_script.progres
action_for first stage
reboot
;;
(3) echo 4 > /usr/share/this_script.progres
action_for second stage
reboot
;;
(4) closing_actions
systemctl disable this_script
rm -f /usr/share/this_script.progres /etc/systemd/system/this_script.service
;;
esac
注意:未经测试;可能存在一些我没有想到的问题。