seafile-containerized/scripts/start.py
Shuai Lin 99d2c8456b Support mysql.
At this moment, we only support running mysql server inside the
container. Support for running mysql(and memcached) in a separate
container would be added later.
2016-11-14 14:47:40 +08:00

58 lines
1.5 KiB
Python
Executable file

#!/usr/bin/env python
#coding: UTF-8
"""
This script calls the appropriate seafile init scripts (e.g.
setup-seafile.sh or setup-seafile-mysql.sh. It's supposed to run inside the
container.
"""
import json
import os
from os.path import abspath, basename, exists, dirname, join, isdir
import shutil
import sys
import time
from utils import call, get_conf, get_install_dir, get_script, get_command_output
installdir = get_install_dir()
topdir = dirname(installdir)
def watch_controller():
maxretry = 4
retry = 0
while retry < maxretry:
controller_pid = get_command_output('ps aux | grep seafile-controller |grep -v grep || true').strip()
if not controller_pid:
retry += 1
time.sleep(2)
print 'seafile controller exited unexpectedly.'
sys.exit(1)
def main():
admin_pw = {
'email': get_conf('admin.email'),
'password': get_conf('admin.password'),
}
password_file = join(topdir, 'conf', 'admin.txt')
with open(password_file, 'w') as fp:
json.dump(admin_pw, fp)
try:
call('{} start'.format(get_script('seafile.sh')), check_call=True)
call('{} start'.format(get_script('seahub.sh')), check_call=True)
finally:
if exists(password_file):
os.unlink(password_file)
print 'seafile server is running now.'
try:
watch_controller()
except KeyboardInterrupt:
print 'Stopping seafile server.'
sys.exit(0)
if __name__ == '__main__':
main()