我想在关机时运行一个脚本,据我所知,我已经遵循了正确的程序。脚本(close)应该在终端中启动另一个脚本(gdrive),提示我同步我的 Google Drive 文件夹。
以下是我所做的:
将文件“close”和“gdrive”复制到 /etc/init.d 并使其可执行。
update-rc.d close start 0 0 .
然后我从命令行运行该命令。正如预期的那样,这会在/etc/rc0.d
名为中创建一个S00close
指向文件 的链接close
。从命令行手动测试此链接会运行close
,gdrive
在终端中启动,并且通常表现符合预期。
不幸的是,当我关闭机器时什么也没有发生。
以下是来自的代码close
。在第一行中,我延迟关机,因为我认为同步大约需要 5 分钟左右:
#!/bin/sh
echo "PASSWORD" | sudo -S shutdown -c
xterm -e '/etc/init.d/gdrive'
这是来自 gdrive 的代码(尽管 close 在关机时不会运行,所以我不确定这有多么相关):
#!/bin/sh
echo "Sync Gdrive?"
read response
if [ $response = "y" ]; then
cd ~/Gdrive
drive push -ignore-name-clashes -quiet -ignore-conflict
drive pull -ignore-name-clashes -quiet -ignore-conflict
echo "Drive successfully synced"
echo "PASSWORD" | sudo -S shutdown -h now
exit 1
else
echo "Ok, maybe next time"
echo "PASSWORD" | sudo -S shutdown -h now
exit 1
fi
我对此不是很了解,所以任何建议都值得感激。即使有人能告诉我如何查看关机时发生的情况(查看哪些日志文件等),那也很好。
答案1
OP已经解决了这个问题:
谢谢回复。我重新评估了一下我的策略。我刚刚在启动器中放置了一个运行第二个脚本的按钮。这简单得多,而且可以完成同样的事情。