Предполагая, что вы использовали https://www.dropbox.com/download?plat=lnx.x86, а не пакет .deb, возможный способ подождать с запуском Dropbox - это сценарий оболочки. На самом деле, я думаю, что вы использовали пакет .deb, так как вы сказали, что он "пропатчил файловый менеджер". В любом случае, приведенный ниже скрипт должен работать независимо от способа установки.
Насколько я могу видеть, mountall(8)
запускается как "выскочка" в Ubuntu (что бы это ни было). Он работает, пока не смонтированы все файловые системы (включая NFS).
Мы можем проверить, что он работает или запустить его. Когда этот процесс получает сигнал USR1 , все системы NFS монтируются. Если монтирование mountall
успешно, маунталл умрет. Этот скрипт должен быть запущен от имени суперпользователя.
/ USR / местные / бен / раздаточная-ждать монтажа
#!/bin/sh
runas={$1:-root}
mpid=`pidof mountall`
if [ -z "$mpid" ] ; then
mountall --daemon --no-events -q
mpid=`pidof mountall`
else
echo mountall is running, going to notify it to mount nfs shares
fi
kill -USR1 $mpid # see /etc/init/mountall-net.conf and mountall(8)
mpid=`pidof mountall`
while [ -n "$mpid" ]; do
echo waiting for all mounts
sleep 30
kill -USR1 $mpid # see /etc/init/mountall-net.conf and mountall(8)
sleep 1
mpid=`pidof mountall`
done
echo should be safe to run dropbox now
exec su $runas -c /home/$runas/.dropbox-dist/dropboxd
Справочная страница рекомендует не полагаться на функциональность mountall
, но, учитывая природу "временных решений", я думаю, вы можете использовать это в течение некоторого времени.
И для некоторой интеграции с начальными заданиями Ubuntu:
/etc/init/dropbox.conf
# based on ssh.conf
description "Dropbox daemon"
env RUNAS=root # use /etc/init/dropbox.override
#start on stopped mountall-net RESULT=ok
start on remote-filesystems
stop on runlevel [!2345]
respawn
respawn limit 10 5
umask 022
# 'sshd -D' leaks stderr and confuses things in conjunction with 'console log'
console none
pre-start script
test -x /usr/local/bin/dropbox-wait-mount || { stop; exit 0; }
end script
# if you used to set SSHD_OPTS in /etc/default/ssh, you can change the
# 'exec' line here instead
exec /usr/local/bin/dropbox-wait-mount $RUNAS || { stop; exit 0; }
/etc/init/dropbox.override
env RUNAS=jaroslav
Этот пример должен запускаться только после монтирования всех сетевых файловых систем, но его также можно запустить вручную:
start dropbox #RUNAS=jaroslav