搜索

如何在用户退出linux系统时使一个进程仍然继续执行?

发布网友 发布时间:2022-04-19 12:51

我来回答

4个回答

热心网友 时间:2023-07-06 12:54

不要注销退出,一注销所有的都会被关掉了!直接关掉或者你多创建几个用户登陆!

热心网友 时间:2023-07-06 12:54

nohup可以让脚本在推出登录后继续执行

热心网友 时间:2023-07-06 12:54

例如你有一个脚本 a,sh
nohup bash a.sh > a.log 2>&1 &
关键在于nohup ,这个表示拖机执行,最后面的&表示放在后台执行
中间的 2>&1 表示记录错误和正确的日志,换句话说就是:
拖机后台执行a.sh脚本,并且把错误和正确的日志记录到 a.log 文件中追问那比如我有两个开发软件要运行,
其可执行命令分别为quartus、synplify,
我需要执行如下命令吗?
nohup bash quartus> a.log 2>&1 &;
nohup bash synplify> a.log 2>&1 &;

这个命令放在哪里呢?
如果只是控制台输入那是不是服务器重启后就失效了?
如果每次都输入岂不是很麻烦?

追答执行命令不用那样 你可以编写一个shell脚本 a.sh ,内容如下: vim a.sh
#!/bin/bash
### 前面的命令执行成功后,才执行'&&' 后面的命令
quartus && synplify

###不管前面命令执行成功与否都执行 ';' 后面的命令
quartus ; synplify

保存退出后,在命令行输入 nohup bash a.sh > a.log 2>&1 &

还有,如果你是执行计划,例如每隔多久就要执行一次的话,可以用crontab -e来实现,如下:[root@test ~]# crontab -e
00 1 * * * nohup bash /home/backup/a.sh > /home/backup/a.log 2>&1 &
然后保存退出即可,
00 1 * * * 这一段是时间段,分别表示
分 时 天 月 周
上面我的 00 1 * * * 表示 每天 凌晨1点执行a.sh,其中 脚本的路径必须是绝对路径,这样说,可明白?
如果你只是要执行一次的话,可以使用 at 这个命令;

热心网友 时间:2023-07-06 12:55

你需要nohup
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top