-
-
Save thisismitch/6293d3f7f5fa37ca6eab to your computer and use it in GitHub Desktop.
Dropbox systemd and init files (CentOS 7)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# To configure, add line with DROPBOX_USERS="user1 user2" to /etc/sysconfig/dropbox | |
# Probably should use a dropbox group in /etc/groups instead. | |
# Source function library. | |
. /etc/rc.d/init.d/functions | |
prog=dropboxd | |
lockfile=${LOCKFILE-/var/lock/subsys/$prog} | |
RETVAL=0 | |
start() { | |
echo -n $"Starting $prog" | |
if [ -z $DROPBOX_USERS ] ; then | |
echo -n ": unconfigured: $config" | |
echo_failure | |
echo | |
rm -f ${lockfile} ${pidfile} | |
RETURN=6 | |
return $RETVAL | |
fi | |
for dbuser in $DROPBOX_USERS; do | |
dbuser_home=`cat /etc/passwd | grep "^$dbuser:" | cut -d":" -f6` | |
daemon --user $dbuser /bin/sh -c "/opt/dropbox/dropboxd&" | |
done | |
RETVAL=$? | |
echo | |
[ $RETVAL = 0 ] && touch ${lockfile} | |
return $RETVAL | |
} | |
status() { | |
for dbuser in $DROPBOX_USERS; do | |
dbpid=`pgrep -u $dbuser dropboxd | grep -v grep` | |
if [ -z $dbpid ] ; then | |
echo "dropboxd for USER $dbuser: not running." | |
else | |
echo "dropboxd for USER $dbuser: running (pid $dbpid)" | |
fi | |
done | |
} | |
stop() { | |
echo -n $"Stopping $prog" | |
for dbuser in $DROPBOX_USERS; do | |
dbuser_home=`cat /etc/passwd | grep "^$dbuser:" | cut -d":" -f6` | |
killproc /opt/dropbox/dropboxd | |
done | |
RETVAL=$? | |
echo | |
[ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile} | |
} | |
# See how we were called. | |
case "$1" in | |
start) | |
start | |
;; | |
status) | |
status | |
;; | |
stop) | |
stop | |
;; | |
restart) | |
stop | |
start | |
;; | |
*) | |
echo $"Usage: $prog {start|status|stop|restart}" | |
RETVAL=3 | |
esac |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[Unit] | |
Description=Dropbox is a filesyncing sevice provided by dropbox.com. This service starts up the dropbox daemon. | |
After=network.target syslog.target | |
[Service] | |
Environment=LC_ALL=en_US.UTF-8 | |
Environment=LANG=en_US.UTF-8 | |
EnvironmentFile=-/etc/sysconfig/dropbox | |
ExecStart=/etc/init.d/dropbox start | |
ExecReload=/etc/init.d/dropbox restart | |
ExecStop=/etc/init.d/dropbox stop | |
Type=forking | |
[Install] | |
WantedBy=multi-user.target |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
DROPBOX_USERS="sammy" |
Nice, thanks for sharing.
I think manual step replace {version} could be replaced by downloading to specific file with -o <filename>
option instead of -O
– -o, --output FILE Write to FILE instead of stdout
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
MULTIUSER SYSTEMD SCRIPT WITH NO WRAPPER
the following procedure does:
su # be the super user
mkdir /opt/dropbox
#
create install subdirectory, ensure all parents has "+x" permissionscd /opt/dropbox
curl -JLO https://www.dropbox.com/download?plat=lnx.x86_64
#
or "lnx.x86" for 32-bit (wget redirections are bugged)tar -xvzf dropbox-lnx.{version}.tar.gz
#
replace {version}vi /etc/systemd/system/[email protected]
#
create systemd unit script as shown belowsystemctl daemon-reload
#
load new scriptuseradd dpbox-user
#
create local usersu dpbox-user
/opt/dropbox/.dropbox-dist/dropboxd
#
sinchronize dropbox account before enable daemon#
console message:#
stay...#
open the shown link in another browser from any pc, login your dropbox account and press "Connect"#
when the console message changes, cancel the program (ctrl-c)linked to dropbox, welcome {user}
exit
#
return to super usersystemctl enable [email protected]
#
enable and start dropbox for our usersystemctl start [email protected]
AUTO-UPDATE BUG WORKAROUND
suddenly a problem may occur that prevents starting dropbox, logs says something about KILL
i read somewhere that is due bugged auto-update client feature
supposedly it should be disabled (i dont think so)
you can update client manually to avoid this
or write an update script and cron it daily