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
물론 시간이 많이 지났지만 다른 사람들에게는... 이것은 루트 권한이 필요한 데몬 서비스이므로 자동 시작 데스크톱 파일에서 실행하면 원하는 대로 작동하지 않습니다.
당신이 원하는 것은 init 시스템의 데몬 컨트롤(예: /etc/init.d/dropbox)을 사용하여 이를내부에daemopn은 보시다시피 그래픽 런레벨에서 실행되어야 합니다.
관리자 권한이 없으면 일반 사용자로서 권한 있는 데몬으로 시작할 수 없습니다. 그렇지 않은 경우에는 링크한 init.d 스크립트를 사용하는 init 매뉴얼을 찾으십시오.
(늦었지만 다른 사용자에게도 효과가 있을 것입니다.)