我有几个加密的驱动器,我在启动后用脚本手动挂载。其中一个驱动器托管我的Dropbox文件夹。
我需要在安装驱动器时检查dropbox是否正在运行,以便我可以停止Dropbox然后再次启动它以使其正确同步。
这是我到目前为止所做的,但如果它已经在运行,我就无法阻止它。
#!/bash/rc
if ~/dropbox.py running && [ $? -eq 1 ]; then
~/dropbox.py stop
else
~/dropbox.py start
fi
答案 0 :(得分:7)
尝试
killall dropbox
这肯定会阻止它!默认情况下会发送SIGTERM,这是停止进程的正确方法。如果您的系统支持多个同时进行的用户登录,则此命令将终止所有用户的dropbox,或者至少它会尝试这样做。所以更优雅的方式是使用
killall -u myusername dropbox
如果您当前已由该用户登录:
killall -u "$(whoami)" dropbox
或者甚至可能
killall -u "$USER" dropbox
更新:好吧,好像有人喜欢这个答案。但是,有一件重要的事情要知道。只是向进程发送信号并不意味着它会立即终止(或者killall将等待它终止)。因此,当您认为它已经消失时,Dropbox可能会尝试安全终止(这可能需要一些时间才能完成)。只是要考虑的事情。