開機啟動 Seafile

2018-11-11 14:00 更新

Ubuntu 系統(tǒng)

使用 /etc/init.d/ 來配置 Seafile/Seahub 開機啟動.

創(chuàng)建/etc/init.d/seafile-server腳本

sudo vim /etc/init.d/seafile-server

腳本內(nèi)容為: (同時需要修改相應(yīng)的userscript\_path字段的值)

#!/bin/bash
### BEGIN INIT INFO
# Provides:          seafile-server
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Seafile server
# Description:       Start Seafile server
### END INIT INFO

# 請將 user 改為你的Linux用戶名
user=haiwen

# 請將 script_dir 改為你的 Seafile 文件安裝路徑
seafile_dir=/data/haiwen
script_path=${seafile_dir}/seafile-server-latest
seafile_init_log=${seafile_dir}/logs/seafile.init.log
seahub_init_log=${seafile_dir}/logs/seahub.init.log

# 若使用 Nginx/Apache, 請將其設(shè)置為true, 否者為 false
fastcgi=true
# fastcgi 端口, 默認為 8000. 
fastcgi_port=8000

case "$1" in
        start)
                sudo -u ${user} ${script_path}/seafile.sh start >> ${seafile_init_log}
                if [  $fastcgi = true ];
                then
                        sudo -u ${user} ${script_path}/seahub.sh start-fastcgi ${fastcgi_port} >> ${seahub_init_log}
                else
                        sudo -u ${user} ${script_path}/seahub.sh start >> ${seahub_init_log}
                fi
        ;;
        restart)
                sudo -u ${user} ${script_path}/seafile.sh restart >> ${seafile_init_log}
                if [  $fastcgi = true ];
                then
                        sudo -u ${user} ${script_path}/seahub.sh restart-fastcgi ${fastcgi_port} >> ${seahub_init_log}
                else
                        sudo -u ${user} ${script_path}/seahub.sh restart >> ${seahub_init_log}
                fi
        ;;
        stop)
                sudo -u ${user} ${script_path}/seafile.sh $1 >> ${seafile_init_log}
                sudo -u ${user} ${script_path}/seahub.sh $1 >> ${seahub_init_log}
        ;;
        *)
                echo "Usage: /etc/init.d/seafile-server {start|stop|restart}"
                exit 1
        ;;
esac

注意: 如果使用本地 mysql 服務(wù)器,請把 # Required-Start: $remote_fs $syslog 替換為 # Required-Start: $remote_fs $syslog mysql。

設(shè)置 seafile-sever 腳本為可執(zhí)行文件

sudo chmod +x /etc/init.d/seafile-server

在 rc.d 中新增 seafile-server

sudo update-rc.d seafile-server defaults    

完成

其他 Debian 系的 Linux 下

創(chuàng)建腳本/etc/init.d/seafile-server

sudo vim /etc/init.d/seafile-server

腳本內(nèi)容為: (同時需要修改相應(yīng)的userscript\_path字段的值)

#!/bin/sh

### BEGIN INIT INFO
# Provides:          seafile-server
# Required-Start:    $local_fs $remote_fs $network
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Starts Seafile Server
# Description:       starts Seafile Server
### END INIT INFO

# 請將 user 改為你的Linux用戶名
user=haiwen

# 請將 script_path 改為你的 Seafile 文件安裝路徑
seafile_dir=/data/haiwen
script_path=${seafile_dir}/seafile-server-latest
seafile_init_log=${seafile_dir}/logs/seafile.init.log
seahub_init_log=${seafile_dir}/logs/seahub.init.log

# 若使用 fastcgi, 請將其設(shè)置為true
fastcgi=false
# fastcgi 端口, 默認為 8000. 
fastcgi_port=8000

case "$1" in
        start)
                sudo -u ${user} ${script_path}/seafile.sh start >> ${seafile_init_log}
                if [  $fastcgi = true ];
                then
                        sudo -u ${user} ${script_path}/seahub.sh start-fastcgi ${fastcgi_port} >> ${seahub_init_log}
                else
                        sudo -u ${user} ${script_path}/seahub.sh start >> ${seahub_init_log}
                fi
        ;;
        restart)
                sudo -u ${user} ${script_path}/seafile.sh restart >> ${seafile_init_log}
                if [  $fastcgi = true ];
                then
                        sudo -u ${user} ${script_path}/seahub.sh restart-fastcgi ${fastcgi_port} >> ${seahub_init_log}
                else
                        sudo -u ${user} ${script_path}/seahub.sh restart >> ${seahub_init_log}
                fi
        ;;
        stop)
                sudo -u ${user} ${script_path}/seafile.sh $1 >> ${seafile_init_log}
                sudo -u ${user} ${script_path}/seahub.sh $1 >> ${seahub_init_log}
        ;;
        *)
                echo "Usage: /etc/init.d/seafile {start|stop|restart}"
                exit 1
        ;;
esac

注意:

  • 如果你想在 fastcgi 下運行 Seahub,請設(shè)置fastcgi變量為true
  • 如果使用本地 mysql 服務(wù)器,請把 # Required-Start: $remote_fs $syslog 替換為 # Required-Start: $remote_fs $syslog mysql。

為日志文件創(chuàng)建目錄

mkdir /path/to/seafile/dir/logs

設(shè)置 seafile-sever 腳本為可執(zhí)行文件

sudo chmod +x /etc/init.d/seafile-server

在 rc.d 中新增 seafile-server

sudo update-rc.d seafile-server defaults

完成

RHEL/CentOS 系統(tǒng)統(tǒng)方法 1

RHEL/CentOS 下,/etc/rc.local 腳本會隨系統(tǒng)開機自動執(zhí)行,所以我們在這個腳本中設(shè)置啟動 Seafile/Seahub.

  • 定位 python(python 2.6 or 2.7)
which python2.6 # or "which python2.7"
  • 在 /etc/rc.local 腳本中, 將 python2.6(2.7)路徑加入到PATH字段中, 并增加 Seafile/Seahub 啟動命令
`
# 假設(shè) python 2.6(2.7) 可執(zhí)行文件在 /usr/local/bin 目錄下
PATH=$PATH:/usr/local/bin/

# 請將 user 改為你的Linux用戶名
user=haiwen

# 請將 script_path 改為你的 Seafile 文件安裝路徑
seafile_dir=/data/haiwen
script_path=${seafile_dir}/seafile-server-latest

sudo -u ${user} ${script_path}/seafile.sh start > /tmp/seafile.init.log 2>&1
sudo -u ${user} ${script_path}/seahub.sh start > /tmp/seahub.init.log 2>&1

注意: 如果你想在fastcgi下啟動Seahub,只需將上文中最后一行"seahub.sh start"改為"seahub.sh start-fastcgi"

RHEL/CentOS 系統(tǒng)方法 2

RHEL/CentOS 下 , 我們通過 /etc/init.d/ 腳本將 Seafile/Seahub作為服務(wù)程序隨開機啟動.

創(chuàng)建/etc/sysconfig/seafile文件

# 請將 user 改為你的Linux用戶名
user=haiwen

# 請將 script_path 改為你的 Seafile 文件安裝路徑
seafile_dir=/home/haiwen
script_path=${seafile_dir}/seafile-server-latest
seafile_init_log=${seafile_dir}/logs/seafile.init.log
seahub_init_log=${seafile_dir}/logs/seahub.init.log

# 若使用 fastcgi, 請將其設(shè)置true
fastcgi=false

# fastcgi 端口, 默認為 8000. 
fastcgi_port=8000

創(chuàng)建/etc/init.d/seafile文件

#!/bin/bash
#
# seafile

#
# chkconfig: - 68 32
# description: seafile

# Source function library.
. /etc/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

if [ -f /etc/sysconfig/seafile ];then
        . /etc/sysconfig/seafile
        else
            echo "Config file /etc/sysconfig/seafile not found! Bye."
            exit 200
        fi

RETVAL=0

start() {
        # Start daemons.
        echo -n $"Starting seafile: "
        ulimit -n 30000
        su - ${user} -c"${script_path}/seafile.sh start >> ${seafile_init_log} 2>&1"
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/seafile
        return $RETVAL
}

stop() {
        echo -n $"Shutting down seafile: "
        su - ${user} -c"${script_path}/seafile.sh stop >> ${seafile_init_log} 2>&1"
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/seafile
        return $RETVAL
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart|reload)
        stop
        start
        RETVAL=$?
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart}"
        RETVAL=3
esac

exit $RETVAL

創(chuàng)建/etc/init.d/seahub腳本

#!/bin/bash
#
# seahub

#
# chkconfig: - 69 31
# description: seahub

# Source function library.
. /etc/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

if [ -f /etc/sysconfig/seafile ];then
        . /etc/sysconfig/seafile
        else
            echo "Config file /etc/sysconfig/seafile not found! Bye."
            exit 200
        fi

RETVAL=0

start() {
        # Start daemons.
        echo -n $"Starting seahub: "
        ulimit -n 30000
        if [  $fastcgi = true ];
                then
                su - ${user} -c"${script_path}/seahub.sh start-fastcgi ${fastcgi_port} >> ${seahub_init_log} 2>&1"
                else
                su - ${user} -c"${script_path}/seahub.sh start >> ${seahub_init_log} 2>&1"
                fi
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/seahub
        return $RETVAL
}

stop() {
        echo -n $"Shutting down seafile: "
        su - ${user} -c"${script_path}/seahub.sh stop >> ${seahub_init_log} 2>&1"
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/seahub
        return $RETVAL
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart|reload)
        stop
        start
        RETVAL=$?
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart}"
        RETVAL=3
esac

exit $RETVAL

接下來啟動服務(wù)程序:

chmod 550 /etc/init.d/seafile
chmod 550 /etc/init.d/seahub
chkconfig --add seafile
chkconfig --add seahub
chkconfig seahub on
chkconfig seafile on

執(zhí)行:

service seafile start
service seahub start

完成

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號