我有一个python脚本。脚本与Chrome一起使用selenium并访问网站,获取数据并输入CSV文件 这是一项很长的工作 我把脚本放在服务器上。并运行。一切工作。 但我需要在后台编写脚本。
chmod +x createdb.py
nohup python ./createdb.py &
我看到了
(env)$ nohup ./createdb.py &
[1] 32257
(env)$ nohup: ignoring input and appending output to 'nohup.out'
按Enter键。
(env)$ nohup ./createdb.py &
[1] 32257
(env)$ nohup: ignoring input and appending output to 'nohup.out'
[1]+ Exit 1 nohup ./createdb.py
然后它运行并立即将错误写入文件,Chrome没有启动或没有点击。
我想提醒你,如果你没有nohup开始,那么一切都会奏效
我究竟做错了什么?如何运行脚本?
非常感谢你。
答案 0 :(得分:2)
您可以创建一个后台守护程序(服务)
您对Ubuntu 16.04进行了测试,这意味着您已获得systemd,有关如何设置的更多信息,请访问此link
创建一个名为<my_service>.system
的文件
并把它放在那里:/etc/systemd/system
你的systemd单位看起来像这样:
[Unit]
Description=my service
After=graphical.target
[Service]
Type=simple
WorkingDirectory=/my_dir
ExecStart=python my_script.py
[Install]
WantedBy=multi-user.target
然后您需要做的就是重新加载systemd manage并启动您的服务:
sudo systemctl daemon-reload
sudo systemctl myservice start
答案 1 :(得分:1)
您可以使用screen命令,它可以正常工作。
这是一个非常好的链接:https://www.rackaid.com/blog/linux-screen-tutorial-and-how-to/
答案 2 :(得分:0)
您可以使用env目录中的简单命令:
(env)$ python /path/to/createdb.py > logger.txt 2>&1 &
这有助于将程序日志存储在名为&#34; logger.txt&#34;
的定义文件中