Мои догадки:
Вы указали неправильный путь к команде dropbox
; ./
всегда ссылается на текущий каталог, который не изменяется с помощью sudo -H
. Вам все равно придется использовать /home/dropbox/.dropbox-dist/dropbox
.
Dropbox отказывается запускаться из-за end script
в командной строке. Он не является частью команды - исходный пример Upstart должен был состоять из нескольких строк:
start on runlevel 2
start on runlevel 3
start on runlevel 4
start on runlevel 5
stop on shutdown
respawn
script
# Without next line DB does not sync non ASCII characters (ubuntu 10.04-x86_64, db 0.7.110)
export LANG=en_US.UTF-8
cd /home/dropbox
exec sudo -H -u dropbox ./.dropbox-dist/dropbox
end script
Как вы можете видеть, конфигурационные компакт-диски Upstart для /home/dropbox
перед обращением к ./.dropbox-dist
.
Для systemd создайте /etc/systemd/system/dropbox.service
:
[Unit]
Description=Dropbox as a system service
[Service]
ExecStart=/home/dropbox/.dropbox-dist/dropbox
User=dropbox
# 'LANG' might be unnecessary, since systemd already sets the
# locale for all services according to "/etc/locale.conf".
# Run `systemctl show-environment` to make sure.
Environment=LANG=en_US.utf-8
[Install]
WantedBy=multi-user.target
Используйте systemctl start dropbox.service
чтобы запустить службу сейчас.
Используйте systemctl enable dropbox.service
чтобы он автоматически запускался при загрузке.
Если вы редактируете файл модуля после того, как он был использован один раз, запустите systemctl daemon-reload
чтобы очистить файл, сохраненный в кэше.