(スーパー)ユーザーがサービスを処理しているときに発生する問題

(スーパー)ユーザーがサービスを処理しているときに発生する問題

ヘッドレスUbuntuサーバー14.04。 Dropboxをインストールしました(ここで説明したように)。http://ubuntuserverguide.com/2012/06/how-to-install-and-configure-dropbox-on-ubuntu-server-12-04.html)起動時に起動するようにinit.dにスクリプトを追加します。 ### BEGIN INIT INFO [...] ### END INIT INFO コンテンツをファイルに追加する必要があることを知るまで、最初はいくつかの問題がありました。それでも…

これで起動時に起動します。

myuser@unas14:~$ service dropbox status
dropboxd for USER myuser: running (pid 14108)

ただし、Dropboxフォルダ内のファイルはまだ同期されていません。 rootでサービスコマンドを実行してみました。

myuser@unas14:~$ sudo service dropbox status
[sudo] password for myuser:
dropboxd for USER myuser: not running.

次に、公式のPythonスクリプトを実行します(ここから)。https://www.dropbox.com/download?dl=packages/dropbox.py)

myuser@unas14:~$ ./dropbox.py status
Dropbox isn't running!
myuser@unas14:~$ ./dropbox.py start
Starting Dropbox...Dropbox isn't running!
Done!
myuser@unas14:~$ ./dropbox.py status
Starting...
myuser@unas14:~$ sudo service dropbox status
dropboxd for USER myuser: running (pid 14272)

それでは私以外のユーザーのためにDropboxが実行されているようですが、それでも私のユーザーのために実行されていますか?本当に混乱しています。 Dropboxを手動で起動すると、すべてがうまく機能します。もちろん、次の再起動まで手動で再起動する必要があります。

どんなフィードバックでも歓迎します。よろしくお願いします。 :)

John Smithに返信:(コメントにコード形式を使用できないため)

myuser@unas14:~$ ps -ef|grep dropbox
myuser      1896  1837  0 12:25 pts/0    00:00:00 grep --color=auto dropbox
myuser@unas14:~$ ./dropbox.py start
Starting Dropbox...Dropbox isn't running!
Done!
myuser@unas14:~$ ps -ef|grep dropbox
myuser      2246     1 82 12:49 ?        00:00:04 /home/myuser/.dropbox-dist/dropbox-lnx.x86-2.10.52/dropbox
myuser      2276  1837  0 12:49 pts/0    00:00:00 grep --color=auto dropbox

これは私の初期化スクリプトです。

#! /bin/sh
#
# init script for the dynamic DNS service update utility: dropbox

### BEGIN INIT INFO
# Provides:          dropbox
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: sync dropbox files
### END INIT INFO

#  dropbox service
# Replace with linux users you want to run Dropbox clients for
DROPBOX_USERS="myuser"

DAEMON=/home/myuser/.dropbox-dist/dropbox
start() {
 echo "Starting dropbox..."
 for dbuser in $DROPBOX_USERS; do
 HOMEDIR=`getent passwd $dbuser | cut -d: -f6`
 if [ -x $HOMEDIR/$DAEMON ]; then
 HOME="$HOMEDIR" start-stop-daemon -b -o -c $dbuser -S -u $dbuser -x $HOMEDIR/$DAEMON
 fi
 done
}

stop() {
 echo "Stopping dropbox..."
 for dbuser in $DROPBOX_USERS; do
 HOMEDIR=`getent passwd $dbuser | cut -d: -f6`
 if [ -x $HOMEDIR/$DAEMON ]; then
 start-stop-daemon -o -c $dbuser -K -u $dbuser -x $HOMEDIR/$DAEMON
 fi
 done
}

status() {
 for dbuser in $DROPBOX_USERS; do
 dbpid=`pgrep -u $dbuser dropbox`
 if [ -z $dbpid ] ; then
 echo "dropboxd for USER $dbuser: not running."
 else
 echo "dropboxd for USER $dbuser: running (pid $dbpid)"
 fi
 done
}

case "$1" in
 start)
 start
 ;;
 stop)
 stop
 ;;
 restart|reload|force-reload)
 stop
 start
 ;;
 status)
 status
 ;;
 *)
 echo "Usage: /etc/init.d/dropbox {start|stop|reload|force-reload|restart|status}"
 exit 1
 esac

exit 0

関連情報