Dropboxをユーザーとして起動するスクリプトがありますセーフティボックス。デスクトップ環境をロードした後に自動的に起動するようにしたいと思います。デスクトップ環境は次のように実行されます。他のユーザー「安全金庫」ではありません。
私がそれを実行したとき:
root@localhost:/home/gameboy# /etc/init.d/dropbox start
うまくいきます。
しかし、自動的に起動する必要があります。/etc/xdg/autostart/
成功せずにデスクトップエントリファイルを配置しました。
gameboy@localhost:~$ sudo cat /etc/xdg/autostart/dropbox.desktop
[Desktop Entry]
Name=Dropbox
Exec=/etc/init.d/dropbox start
Icon=dropbox
Type=Application
Categories=Network;FileTransfer;
gameboy@localhost:~$ sudo cat /etc/init.d/dropbox
#!/bin/bash
### BEGIN INIT INFO
# Provides: dropbox
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the dropbox service
# Description: starts dropbox using start-stop-daemon
### END INIT INFO
xhost +SI:localuser:dropbox &>/dev/null
DAEMON2=/usr/local/dropbox/dropbox-lnx.x86_64-20.4.19/dropbox
DROPBOX_USERS="dropbox"
DAEMON=/usr/local/dropbox/dropboxd
#unset DISPLAY
start() {
echo "Starting dropbox..."
for dbuser in $DROPBOX_USERS; do
HOMEDIR=$(getent passwd $dbuser | cut -d: -f6)
if [ -x $DAEMON ]; then
HOME="$HOMEDIR" start-stop-daemon -b -o -c $dbuser -S -u $dbuser -x $DAEMON
fi
done
}
stop() {
echo "Stopping dropbox..."
for dbuser in $DROPBOX_USERS; do
HOMEDIR=$(getent passwd $dbuser | cut -d: -f6)
if [ -x $DAEMON2 ]; then
start-stop-daemon -o -c $dbuser -K -u $dbuser -x $DAEMON2
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
sleep 1
status
;;
stop)
stop
sleep 1
status
;;
restart|reload|force-reload)
stop
start
sleep 1
status
;;
status)
status
;;
*)
echo "Usage: /etc/init.d/dropbox {start|stop|reload|force-reload|restart|status}"
exit 1
esac
exit 0
gameboy@localhost:~$
自動的に起動するにはどうすればよいですか?
答え1
もちろん、時間がかかりましたが、他の人にとっては、これはroot権限を必要とするデーモンサービスなので、自動起動デスクトップファイルから実行しても好きなように機能しません。
あなたが望むものは、initシステムのデーモンコントロール(例えば/etc/init.d/dropbox)を使ってこれを行います内部にdaemopnはご覧のとおり、グラフィックランレベルで実行する必要があります。
管理者権限がないと、通常のユーザーとして特権デーモンから始めることはできません。そうでない場合は、リンクされたinit.dスクリプトを使用するinitマニュアルを見つけてください。
(遅くなりましたが、他のユーザーにも効果があるでしょう。)