我创建了一个名为 的脚本checkrest
,并将其以可执行权限放在/bin
目录中。该脚本检查应用程序是否需要重新启动,如果需要,它会检查哪个应用程序。我发现这非常有用,因为否则我必须做大量的手动工作才能确定我的系统上是否有任何东西需要重新启动。
目前我必须手动运行它,但如果每次执行 APT 命令(这会对我的系统造成更改)后都能运行它,我会发现它会更有用。或者在我执行命令(这会对我的系统dpkg
造成更改)后。例如,在安装、删除或配置任何软件后,我希望它自动执行我创建的这个小脚本。那么最好的方法是什么?但我还希望使用其他自定义脚本来做这种事情,那么这种事情通常是怎么做的呢?
操作系统信息:
Description: Ubuntu 15.04
Release: 15.04
答案1
下面是一个完成这项工作的懒人脚本(考虑只有一个进程实例正在运行):
#!/bin/bash
while [ -h /proc/"$(pgrep apt-get)"/exe ]; do
sleep 10
done
echo "DONE"
替换echo "DONE"
为您接下来要执行的操作。您可以将其作为cron
作业运行。
/proc
每个进程都有一个与其 PID 关联的目录,可执行文件的完整路径被符号链接到exe
该目录内。这里我们检查该文件是否存在并且是否是符号链接。
我们可以使用[ -d /proc/PID ]
,但这会给我们错误的结果,因为当的值为PID
空时,它将变得[ -d /proc ]
始终存在,所以脚本将无限期地运行。