代码拉取完成,页面将自动刷新
同步操作将从 txmu/flyos 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
"""flyos启动入口"""
import os
import time
import sqlite3
import threading
import subprocess
try:
import func_timeout
except:
os.chdir(os.getenv("FLYOS"))
os.system("pip install -r $FLYOS/requirements.txt")
os.chdir(os.getenv("HOME"))
HOME = os.getenv("HOME")
FLYOS = os.getenv("FLYOS")
WIDTH = os.get_terminal_size().columns
os.system("clear")
if not os.path.exists(HOME+"/.flyos/"): # 检测是否已经初始化
os.system(f"python {FLYOS}/.firstuse/register.py")
print("flyos启动选项")
print("1. 启动flyos")
print("2. 启动恢复模式")
print("3秒后自动启动flyos")
@func_timeout.func_set_timeout(3)
def get_input():
"""获取用户输入"""
return input(">>> ")
try:
input_ = get_input()
except func_timeout.exceptions.FunctionTimedOut:
input_ = '1'
if input_ == '1':
os.system('clear')
# 下面的代码是为了防止重复启动服务
try:
with open(HOME+"/.flyos/ppid", "r") as f: # 读取之前保存的父进程的pid
FLYOS_PPID = int(f.read(16))
except FileNotFoundError:
with open(HOME+"/.flyos/ppid", "w") as f: # 没有保存过
f.write("0")
FLYOS_PPID = 0
if os.getppid() == FLYOS_PPID: # 如果这个进程的父进程pid与之前保存的一致, 就运行console.py
os.system(f"python {FLYOS}/console.py")
else:
with open(HOME+"/.flyos/ppid", "w") as f: # 如果不一样, 将父进程pid写入文件
f.write(str(os.getppid()))
print("运行自启动服务...")
conn = sqlite3.connect(f'{HOME}/.flyos/service.db')
cur = conn.cursor()
data = cur.execute("SELECT * FROM boot WHERE status==1;")
for i in data: # 运行开机自启动服务
print(i[1])
threading.Thread(target=lambda:subprocess.Popen(i[1],
stderr=-1,
stdout=-1,
shell=True)).start()
time.sleep(0.1)
conn.close()
os.system(f"python {FLYOS}/console.py")
elif input_ == '2':
print("这是什么?")
print("这是flyos的恢复模式,"
"当您的flyos无法正常启动的时候,"
"您可以尝试使用此模式恢复")
os.system("bash")
else:
print("错误选项")
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。