update start.sh
This commit is contained in:
parent
872504f7f7
commit
6bab6d8b09
37
app.py
37
app.py
|
|
@ -29,51 +29,20 @@ async def run_spider_in_vnc(index: int) -> str:
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
index: VNC 显示编号
|
index: VNC 显示编号
|
||||||
username: 用户名(默认 user{index})
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if username is None:
|
|
||||||
username = f"user{index}"
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# 创建临时脚本
|
# 调用外部 start.sh 脚本,传入 index 作为参数
|
||||||
with tempfile.NamedTemporaryFile(mode='w', suffix='.sh', delete=False) as f:
|
|
||||||
f.write(f"""#!/bin/bash
|
|
||||||
PUBLIC_DIR="/shared"
|
|
||||||
username="{username}"
|
|
||||||
export DISPLAY=:{index}
|
|
||||||
|
|
||||||
echo "启动 VNC 服务"
|
|
||||||
sudo su - "$username" -c "vncserver :{index} -geometry 1280x800 -depth 24 -localhost no"
|
|
||||||
sudo su - "$username" -c "export DISPLAY=:{index} && xhost +" 2>/dev/null
|
|
||||||
sleep 3
|
|
||||||
|
|
||||||
cd $PUBLIC_DIR/learn-spider
|
|
||||||
sudo -E ./run.sh
|
|
||||||
|
|
||||||
sudo su - "$username" -c "vncserver -kill :{index}" 2>/dev/null
|
|
||||||
""")
|
|
||||||
script_path = f.name
|
|
||||||
|
|
||||||
# 执行脚本
|
|
||||||
os.chmod(script_path, 0o755)
|
|
||||||
|
|
||||||
process = await asyncio.create_subprocess_exec(
|
process = await asyncio.create_subprocess_exec(
|
||||||
script_path,
|
"/home/dgs/vnc-server/start.sh",
|
||||||
|
str(index),
|
||||||
stdout=asyncio.subprocess.PIPE,
|
stdout=asyncio.subprocess.PIPE,
|
||||||
stderr=asyncio.subprocess.PIPE
|
stderr=asyncio.subprocess.PIPE
|
||||||
)
|
)
|
||||||
|
|
||||||
stdout, stderr = await process.communicate()
|
stdout, stderr = await process.communicate()
|
||||||
|
|
||||||
# 清理临时文件
|
|
||||||
os.unlink(script_path)
|
|
||||||
|
|
||||||
if process.returncode == 0:
|
if process.returncode == 0:
|
||||||
return f"✅ 爬虫执行成功\n输出:\n{stdout.decode()}"
|
return f"✅ 爬虫执行成功\n输出:\n{stdout.decode()}"
|
||||||
else:
|
else:
|
||||||
return f"❌ 爬虫执行失败\n错误:\n{stderr.decode()}"
|
return f"❌ 爬虫执行失败\n错误:\n{stderr.decode()}"
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return f"❌ 执行出错: {str(e)}"
|
return f"❌ 执行出错: {str(e)}"
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue