我创建了一个名为“enws”的数据库。我正在使用 python 脚本“db_store.py”从存储在名为“xSparse.txt”的文件中的数据填充数据库。我是 linux 和 postgresql 的新手,我想知道如果我取消从中调用它的终端,从远程终端 (ssh) 调用的填充脚本是否会消失?请参阅下面我的设置:
python db_store.py -cs --file xSparse.txt --dbname enws
如果我查看 htop,即使工作终端关闭,一些相关进程(我认为)仍在运行:
enws [local] INSERT
enws [local] CREATE TABLE waiting
db_store.py -cs --file xSparse.txt --dbname enws
此外,我还想知道要终止哪些进程才能重新开始,以及在这种情况下是否需要清除数据库。
谢谢你们。
最佳答案
为运行时间较长的脚本使用屏幕。
sudo apt-get install screen
一些屏幕有用的命令:
screen -S foo //create a new screen called foo
screen -ls //List all your screens
screen -r foo //resume your foo screen
要退出屏幕,请按 ctrl+A,然后按 D 当您在屏幕内时,如果您键入“exit”,它将退出当前屏幕。因此,使用 ssh 登录,键入如下内容:
screen -S script
python db_store.py -cs --file xSparse.txt --dbname enws
ctrl+a ...d
然后用 screen -r 脚本重新打开它。
它允许你运行任何你想运行的东西,即使关闭终端它也会继续运行。
如果您的脚本正在向数据库发送查询并且您退出脚本,数据库将执行查询,因为一旦脚本向数据库发送查询,停止它的唯一方法是从 sql 或关闭数据库服务(或关闭计算机)
关于python - 如果我取消调用它的终端,PostgreSQL 填充进程会死掉吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34389002/