新人 不会玩服务器,求问几个问题

2021-12-29 23:36:53 +08:00
 amiwrong123

买了一个 150 3 年的腾讯云服务器( 1 核 2g ,Ubuntu Server 18.04.1 LTS 64bit ,50g SSD ),但是现在不怎么会用,主要以前用的都是有界面的 Ubuntu 。第一次用服务器,很多都不会,求大佬指点啦

现在通过 ssh 连上服务器了,也能在上面写代码并运行了(现在 powershell 通过 ssh 连上,并且 vscode 也通过 ssh 连上)。现在我写了一个 需要不停运行的 py 爬虫脚本,它每天定时爬虫,并把爬虫信息发送到我的邮件。在 Windows 上已经测试过 这个脚本,是好用的了。

  1. 第一个问题,如果 Ubuntu 是有界面的,那我直接新开一个 terminal ,然后运行我的 py 脚本,并且一直不关闭这个 terminal ,就实现了我的目的。但现在是无界面的,那么如果我现在通过 Windows 自带的 powershell 来 ssh 登录服务器,然后在 powershell 里 运行我的 py 脚本,但我断开 ssh ,这个 terminal 会关闭的吧?(百度了,好像 nohup 能实现)
  2. 就算解决了这个问题,我以后要是运行了多个不同的脚本,得怎么管理呀,我是要通过 ps 命令来看这些进程吗?比如我想停止某个 一直运行的脚本,修改这个脚本的程序后,再重新运行。
  3. 我这个配置,是不是不建议安装图形界面了?不然太卡了( https://cloud.tencent.com/developer/article/1848352?from=15425 ),毕竟如果有界面的话,我就熟悉多了
  4. Ubuntu 安装 py 包,也都是 pip 一个一个地自己安装的吗,还是有更好的解决方案?我现在 Windows 用的 anaconda 很多包都给我下好了。
  5. 如果有其他好的建议,也可以说下,谢谢各位大佬了
6096 次点击
所在节点    程序员
52 条回复
amiwrong123
2021-12-30 17:48:55 +08:00
@markgor #39
hhh ,见笑了。我准备今晚上先用 nohup 配合& 让我的脚本先跑起来再说。

然后本地 我用 ssh 登录 Vmware 里面的 Ubuntu ,来进行练习。把帖子里大家说的这些,都试一下😂
adoal
2021-12-30 18:07:24 +08:00
你需要系统地学习 Linux 服务器知识…
2i2Re2PLMaDnghL
2021-12-30 18:21:13 +08:00
@amiwrong123 没有大的问题,不过一般来说 systemd 会写 unit file ,另外 supervisord 会自己进行 daemon 化,所以需要让 systemd 能管理它的话需要 pidfile 来着?
WeiYuanStudio
2021-12-30 18:48:05 +08:00
如果是占用时间短的脚本任务,推荐一下云函数。例如腾讯云函数,不需要购买云主机。而且免费额度很高。用里面的 cron 定时触发器触发即可。
NanFengXiangWan
2021-12-30 21:15:18 +08:00
如果嫌麻烦,直接安装宝塔面板傻瓜式操作,定时任务一劳永逸。
c1273082756
2021-12-31 09:35:38 +08:00
docker
markgor
2021-12-31 10:50:01 +08:00
@amiwrong123 #40
项目->长期运行的 用 service(systemctl)进行托管,设置 afterNetwork 启动,作用是方便自己启动 /停止 /重启这些项目;
调试->需要背景运行,nohup 万精油,通过 stdout 重定向把信息输出去日志,长期调试的就去 rc.local 添加上去自动运行,麻烦在于需要停止的时候自己 kill 下它。

而 screen/tmux 这些我接触很少,因为我们平时有部分服务器是没联网的,这个时候只有 service,systemctl,这些系统默认就带上的才能方便使用,就算退一万步,没有 service 和 systemctl ,还可以 nohup 来跑.....
adoal
2021-12-31 12:46:58 +08:00
@markgor 用 nohup 来跑,是(把其它计算机知识视作其它岗位才需要去学的) 24K 氪金纯程序员和(只重视算法的) 24K 氪金数据科学家们的思路……在生产环境的服务器上干活,还是要懂生产环境运维的“行规”才好。
adoal
2021-12-31 12:48:09 +08:00
唔,at 错人了……是要 at @amiwrong123
julyclyde
2021-12-31 14:23:36 +08:00
后台服务建议 systemd
容器一时爽,等程序崩了就火葬场了,残留文件、故障时候的输出都不好找

nohup 不带自动切断日志,回头那个文件就会巨大……

screen/tmux 显然是错误的。把交互式 shell 和后台服务混为一谈,这样容易受环境变量的影响
amiwrong123
2021-12-31 14:41:46 +08:00
@julyclyde #50
>screen/tmux 显然是错误的。把交互式 shell 和后台服务混为一谈,这样容易受环境变量的影响
你想说 screen/tmux 最多只是用于 一次性的但可能要执行很久(比如几个小时)的东西呗,像这样需要常驻的服务的话,还是要用 systemd 呗。

>nohup 不带自动切断日志,回头那个文件就会巨大……
你说那个自动生成的 out 文件吗,哎,我没去管它呢😂

>容器一时爽,等程序崩了就火葬场了,残留文件、故障时候的输出都不好找
不是很懂,因为我还没试过呢😂

不过我想问一下,可以结合 systemd 和 docker 吗?比如 systemd 启动一个服务,这个服务做的事情就是 启动一个容器?
julyclyde
2021-12-31 18:05:13 +08:00
@amiwrong123
systemd 那边环境是独立设置的,无污染。从交互式 shell 进去的话有可能会有额外的环境变量,进程所属的 cgroup 也是归属于用户的 session 的
不过确实是,一次性就无所谓了,能干完活才是最重要的

用 systemd 启动容器的话,你可以看看 systemd-machind 。不过这个 systemd 容器和 docker 那个不同,systemd 容器没有 image 体系。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/825178

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX