Answers:
There are stopped jobs消息很远,很远就是一个错误。这只是一条通知,告诉您您试图退出Shell,但是您有一个或多个暂停的作业/程序(在您的情况下emacs,您在&命令末尾使用了后台作业/程序)。除非您打算这样做,否则系统不允许您退出Shell并杀死作业。您可以根据以下消息做几件事:
jobs命令告诉您已暂停的工作fg命令在前台添加作业exit再次输入;exit在有或没有中间jobs命令的情况下再次键入将导致所有暂停的作业终止。要回答第二个问题,我将告诉您,不是Ubuntu或emacs这样。当您将应用程序置于后台运行时,这是正常现象。在这种情况下,sudo您要求输入密码,但在后台询问,因此您看不到这个事实。要查看它,您应该使用以下fg命令将作业调回前台:
radu@Radu: ~ $ sudo emacs tet.c &
[1] 7732
radu@Radu: ~ $ # now sudo emacs run in background so you can't see nothing about what's happening
radu@Radu: ~ $ fg
[sudo] password for radu:
之后,如果需要,您可以键入Ctrl+ Z将作业再次置于后台。然后,您可以再次运行'fg'命令以使作业回到前台,依此类推。
您收到此消息,是因为系统警告您有关与当前Shell相关的活动作业。
您可以列出这些运行/运行停止的作业:jobs,
然后,您可以执行以下操作之一:
fg与bg背景相反),disown删除从当前的shell这些工作没有杀死他们,exit/ logout两次一样,kill $(jobs -p)添加-9)如果您放弃它们,但仍想杀死所有已停止的进程,请尝试:
kill $(ps wuax | awk 'NR>1 && $8 ~ "T" {print $2}')
要回答有关的问题sudo,它不会要求您输入密码,因为它需要具有活动的终端才能从标准输入中接收密码,并且通过在后台运行密码,shell不会等待命令完成,因此您不可能与命令进行交互。
在这种情况下,您有3种可能性:
&)的情况下运行命令,从标准输入而非终端设备读取密码,sudo -S例如
echo mypass | sudo emacs tet.c
通过以下visudo命令将sudo配置为不要求输入密码:命令和编辑sudoers文件。请参阅:为用户启用NOPASSWD
遇到作业停止错误时:
jobs->您将看到状态为已停止的作业exit->您可以退出终端
quit:)(见superuser.com/questions/486496/how-do-i-exit-telnet)