我正在使用屏幕和分离模式在终端中运行睡眠命令。
一旦屏幕立即返回,我正在运行ps
命令来验证睡眠是否正在运行。
$ screen -d -m 'sleep 2m'
[raj@localhost ~]$ ps
PID TTY TIME CMD
22795 pts/0 00:00:00 bash
22869 pts/0 00:00:00 ps
但是该命令没有显示睡眠。我在这里做错了什么?
我正在使用屏幕和分离模式在终端中运行睡眠命令。
一旦屏幕立即返回,我正在运行ps
命令来验证睡眠是否正在运行。
$ screen -d -m 'sleep 2m'
[raj@localhost ~]$ ps
PID TTY TIME CMD
22795 pts/0 00:00:00 bash
22869 pts/0 00:00:00 ps
但是该命令没有显示睡眠。我在这里做错了什么?
这最初也让我感到困惑。然后我重新阅读了
screen
SYNOPSIS 的本地手册页——在线手册页没有给出概要)——并注意到它说:...这使我相信它希望将
cmd
andargs
视为独立的论点。由于您将第一个参数作为引用值提供 - '
sleep 2m
' - 它试图执行一个名为(完全)'sleep 2m
' 的命令,而不是你真正想要的,它sleep
有自己的参数2m
. 该screen
命令成功退出(在我的测试中),但它没有成功执行您的命令。改用:
而不是
ps
,它只会显示与当前终端关联的进程(其中 SCREEN 和相关进程不是),使用:这将显示它:
使用
nohup
就够了吗?它将显示在ps
哪里,因为在屏幕中运行它可能会使进程隐藏在屏幕进程中。这方面的一个例子来自 bash..
如果您想退出此终端会话,您可能需要使用
at
作业命令..