首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

后台Shell作业后为什么Applescript不退出?

在后台运行的Shell作业中,Applescript 不退出的原因可能是因为它没有收到退出信号。为了解决这个问题,您可以尝试以下方法:

  1. 确保您的脚本中包含适当的退出命令。在Applescript中,可以使用return语句来退出脚本。例如:
代码语言:txt
复制
on run
    -- your code here
    return
end run
  1. 如果您的脚本运行在一个循环中,确保循环会在某个时候终止。例如,如果您使用repeat循环,请确保有一个适当的退出条件。
代码语言:txt
复制
repeat while someCondition
    -- your code here
end repeat
  1. 如果您的脚本运行在一个事件循环中,请确保事件循环在适当的时候退出。例如,在一个基于Cocoa的应用程序中,您可以使用NSApplicationstop方法来停止事件循环。
代码语言:txt
复制
tell application "System Events"
    tell application process "YourApp"
        activate
        -- your code here
        stop
    end tell
end tell
  1. 如果您的脚本使用了第三方库或框架,请确保这些库或框架没有导致Applescript无法退出。您可以尝试联系这些库或框架的开发者,以获取更多信息。

如果您尝试了上述方法仍然无法解决问题,请提供更多关于您的脚本和使用的库或框架的详细信息,以便我们能够更好地帮助您。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

《Linux命令行与shell脚本编程大全》第十六章 控制脚本

但是这样可以在终止进程的情况下能深入脚本内部一窥究竟。 Ctrl+z 会生成一个SIGTSTP信号,停止shell中运行的任何进程。...$exit 这样会退出。 16.1.3 捕获信号 也可以忽略信号,在信号出现时捕获它们并执行相应命令。 trap命令允许你来指定脚本要监看并从shell中拦截的linux信号。...如果脚本收到了trap中列出的信号,该信号不再由shell处理,而是交由本地处理。 命令格式: trap commands signals 16.1.4 捕获脚本退出 在脚本退出时进行捕获。...16.2.1 后台运行脚本 命令后面加个取地址符就好了 例如: $./test & 显示的第一行是shell分配给后台进程的作业号[]里面的。后面那个是进程的PID。...在终端会话中使用后台进程要注意,ps命令的输出中,每一个后台进程都和终端会话(pts/0)终端联系在一起。如果终端会话退出,那么后台进程也会退出

3K61

linux 后台运行进程:& , nohup

后台执行 比较下 & 与 nohup: & :后台运行,但用户终端退出时(断连),命令结束 nohup test.sh & : 后台运行,用户终端退出时(断连)依然保持运行,可使用标准输入输出 & 当在前台运行某个作业时...,终端被该作业占据;可以在命令后面加上& 实现后台运行。...在后台运行作业时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会在那里傻等。不过,作业后台运行一样会将结果输出到屏幕上,干扰你的工作。...(ps -ef | grep 进程号 或者 kill -9 进程号) nohup 使用&命令后,作业被提交到后台运行,当前控制台没有被占用,但是一但把当前控制台关掉(退出帐户时),作业就会停止运行。...试想2>1代表什么,2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而代表标准输出;换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出.

4.5K40
  • linux后台执行命令&和nohup的具体使用方法

    后台运行作业时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会在那里傻等。不过,作业后台运行一样会将结果输出到屏幕上,干扰你的工作。...(ps -ef | grep 进程号 或者 kill -9 进程号) nohup 使用&命令后,作业被提交到后台运行,当前控制台没有被占用,但是一但把当前控制台关掉(退出帐户时),作业就会停止运行...所以在使用nohup命令后台运行命令之后,需要使用exit正常退出当前账户,这样才能保证命令一直在后台运行。 ctrl + z 可以将一个正在前台执行的命令放到后台,并且处于暂停状态。...但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。...试想2>1代表什么,2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而代表标准输出;换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出.

    2.7K31

    Linux中作业控制命令

    (你可在shell prompt继续输入),这是一个后台Job Linux作业控制命令 使用作业控制命令,您可以在Shell中运行和管理多个作业。...nohup:关闭终端也执行 “很多时候,你是通过ssh登录到远程服务器,再执行Shell脚本或命令,如果你退出了终端(终止远程连接),则该进程/命令将被杀死。...如果不确定该作业何时完成,则最好让该作业后台运行,但是,如果你退出系统,该作业将被Shell停止并终止,当进程收到SIGHUP时,如何使作业后台运行?...这个时候,我们就要使用nohup命令,让我们长时间运行的Shell脚本或命令在我们退出系统依旧能执行(此时一般搭配&后台执行)。 “顾名思义:nohup是用于忽略HUP(挂断)信号的POSIX命令。...总结: 只能在初始化作业shell里管控作业 fg %n bg %n 切换前后台作业 nohup & 搭配,帮助长时间后台运行的作业,在你退出系统,依旧可运行

    2.4K30

    java检测tomcat宕机_Tomcat意外宕机分析

    tomcat启动之后,当前shell进程并没有退出,而是挂住在tail进程,往终端输出日志内容。这种情况下: 1)、如果我先直接关掉ssh窗口后,Java进程会退出,服务不可用。...后来通过google后了解到: shell在非交互模式下对后台进程处理SIGINT信号时设置的是IGNORE。...交互模式与非交互模式对作业控制(job control)默认方式不同: I)在交互模式下,因为作业控制的需要,shell不会对后台进程处理SIGINT信号设置为忽略。...如果我们在test.sh里设置开启作业控制的话,就不会让java进程退出了 #!...注: 如果把tail 打印的这一行去掉,为什么Java进程也不会退出,我猜原因应该是,如果没有tail的话, Java进程就不是他们的子进程了,自然怎么操作都不会受影响。

    1.4K10

    linux的nohup命令

    在第二遍给我演示时,我才发现我和他操作终端时的一个细节不同:他是在当shell中提示了nohup成功后还需要按终端上键盘任意键退回到shell输入命令窗口,然后通过在shell中输入exit来退出终端;...否则,nohup 命令的退出状态是 Command 参数指定命令的退出状态。...该命令的一般形式为:nohup command & 使用nohup命令提交作业 如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件.../program >/dev/null 2>log & 什么信息也不要: nohup ....本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    1.7K20

    Shell脚本——内置命令

    若直接输入该命令且不带任何参数,则列出当前 Shell 进程中使用了哪些别名。现在你应该能理解类似ll这样的命令为什么与ls -l的效果是一样的吧。...可以接收这个退出状态; exit 命令可以接受一个整数值作为参数,代表退出状态。如果指定,默认状态值是 0。 一般情况下,退出状态为 0 表示成功,退出状态为非 0 表示执行失败(出错)了。...Shell 进程执行出错时,可以根据退出状态来判断具体出现了什么错误,比如打开一个文件时,我们可以指定 1 表示文件不存在,2 表示文件没有读取权限,3 表示文件类型不对。...读取并执行指定文件中的命令(在当前 shell 环境中) alias 为指定命令定义一个别名 bg 将作业后台模式运行 bind 将键盘序列绑定到一个 readline 函数或宏 break 退出 for...dirs 显示当前存储目录的列表 disown 从进程作业表中刪除指定的作业 echo 将指定字符串输出到 STDOUT enable 启用或禁用指定的内建shell命令 eval 将指定的参数拼接成一个命令

    2.1K10

    Shell内置命令大全,Linux运维工程师收藏!

    bgbg命令用于将一个作业置于后台运行。当一个作业被挂起或停止时,可以使用bg命令将其切换到后台并继续运行。示例:bg %1上面的示例中,%1表示作业号为1的作业。...使用bg %1命令,我们将该作业切换到后台运行。bindbind命令用于显示当前绑定到特定键的Shell函数或操作。...disowndisown命令用于将作业Shell作业列表中移除。示例:sleep 60 &disown在上面的示例中,sleep 60 &命令将sleep命令置于后台运行,并将其作为一个作业。...logoutlogout命令用于退出当前登录的Shell会话。示例:logout上面的示例中,logout命令将退出当前登录的Shell会话。...,使其在后台运行且与Shell无关联 echo 在标准输出上打印文本 enable 启用或禁用Shell

    92500

    【在Linux世界中追寻伟大的One Piece】进程间关系与守护进程

    2.3 -> 会话ID(SID) 上边我们提到了会话ID, 那么会话ID是什么呢?...Shell分前后台来控制的不是进程而是作业 或者进程组。一个前台作业可以由多个进程组成,一个后台作业也可以由多个进程组成,Shell可以同时运⾏一个前台作业和任意多个后台作业,这称为作业控制。...例如下列命令就是一个作业,它包括两个命令,在执⾏时Shell将在前台启动由两个进程组成的作业。...放在后台执⾏的程序或命令称为后台命令,可以在命令的后面加上&符号从而让Shell识别这是一个后台命令,后台命令不用等待该命令执⾏完成,就可立即接收新的命令,另外后台进程执行完后会返回一个作业号以及一个进程号...4.3 -> 作业状态 常见的作业状态如下表: 作业状态 含义 正在运行【Running】 后台作业(&),表示正在执行 完成【Done】 作业已完成,返回的状态码为0 完成并退出【Done(code)

    5410

    什么是守护进程?

    在了解守护进程之前,需要先知道什么什么是终端?什么作业什么是进程组?什么是会话?...shell分前后台作业来控制的不是进程而是作业。一个作业由多个进程组成。Shell可以运行一个前台作业和任意多个后台作业,称为作业控制。bash就是一个独立的作业。...一个会话中,有一个前台作业和若干个后台作业。会话SID是会话手进程的PID。 为什么只能运行一个前台作业?...当我们在前台新起了一个作业shell就被提到了后台,因此shell就没有办法再继续接受我们的指令并且解析运行了。...但是如果前台进程退出了,shell就会有被提到前台来,就可以继续接受我们的命令并且解析运行。 那么,如何来切断进程和终端的关系呢? 首先,调用 setsid() 使子进程成为新的会话组长。

    1.1K20

    从进程组、会话、终端的概念深入理解守护进程

    与普通进程相比它大概有如下特点: 无需控制终端(不需要与用户交互) 在后台运行 生命周期比较长,一般是随系统启动和关闭 守护进程必要性 为什么要设置为守护进程,普通进程不可以吗?...会话可以有一个进程组称为会话的「前台作业」,其它进程组为「后台作业」 一个会话可以有一个控制终端,当控制终端有输入和输出时都会传递给前台进程组,比如Ctrl + Z。...会话的意义在于能将多个作业通过一个终端控制,一个前台操作,其它后台运行。...4、前后台作业相关操作 让作业由进入后台运行: $ ping localhost >/dev/null & [1] 10269 # 终端显示 # [1]:作业ID 10269:进程组ID 给后台作业发信号...这么做的原因有 2 点: 如果守护进程是通过 Shell 启动,父进程退出Shell 就会认为任务执行完毕,这时子进程由 init 收养 子进程继承父进程的进程组 ID,保证了子进程不是进程组组长,因为后边调用

    1.1K20

    Linux 命令(230)—— set 命令(builtin)

    -b 使被中止的后台程序立刻回报执行状态。 -C 转向所产生的文件无法覆盖已存在的文件。 -d Shell预设会用杂凑表记忆使用过的指令,以加速指令的执行。使用 -d 参数可取消。...-e 若指令传回值不等于0,则立即退出 Shell。 -f 取消使用通配符。 -h 自动记录函数的所在位置。 -H Shell 可利用”!”...读取初始化文件时设置 histexpand -H 执行历史替换时打开!和!!...扩展,是一个默认设置 history N/A 打开命令行历史、默认为打开 ignoreeof N/A 禁止用EOF(Ctrl+D)键退出shell。必须键入exit才能退出。...即关闭通配符 notify -b 后台作业完成时通知用户 nounset -u 扩展一个未设置的变量时显示一个错误信息 onecmd -t 在读取和执行命令后退出 physical -P 设置时,在键入

    4.4K20

    TASKCTL应用工程和作业类型的定义

    删除工程后,通过后台字符界面客户端列举出没有所属工程孤立控制器。 作业类型 作业类型又称“作业组件”。把各种具体的作业程序,按照一定的技术特征,通过插件驱动屏蔽技术差异,构建为各种作业类型。...系统内置了一些作业类型用于支持常见的技术程序,如shell、python脚本程序;oracle和db2存储过程;datastage、kettleETL工具作业等。...默认值:设置了作业属性的默认值,作业属性如果设值,将默认为该值。 个性展示:设置系统预设作业属性名称的别名。入口参数和环境参数,还可以进一步扩展更多的子级别名。...返回值:平台识别作业程序的退出码,来判断作业执行结果状态。可以使用单个数字或数字范围:如成功退出码:【0】 或者【 0-10】。失败退出码:100。只能在【0-100】的范围内。...除此之外,还支持虚拟资源消耗、远程执行、前后置shell脚本等属性的有效性或默认值的设置。 编辑作业类型 点击列表的“编辑”按钮,打开当前作业类型的侧边编辑窗口。

    47730

    Linux - 请允许我静静地后台运行

    可是开很多窗口管理会很不方便,还有万一手贱点了x,或者长时间操作,远程终端断开了连接,进程停止了,再次打开,又是一番折腾。...作业 作业的概念与进程组类似,同样由一个或多个进程组成,它分为前台作业后台作业,一个会话会有一个前台作业和多个后台作业,与进程组不同的是,作业内的某个进程产生的子进程并不属于这个作业。...所以若程序中没有捕捉该信号,当终端关闭后,会话所属进程就会退出。 我们要实现后台执行的目的,实际上是要完成如下两个目标: 使进程让出前台终端,让我们可以继续通过终端与系统进行交互。...& 首先是我们最经常遇到的符号 &,将它附在命令后面可以使进程在后台执行,不会占用前台界面。它实际上是在会话中开启了一个后台作业,对作业的操作我们后面再说。...参考: setsid为什么会在脚本中阻塞-StackoOerflow Linux 进程、进程组、会话周期、控制终端

    1.7K50

    关于进程的分类

    普通进程与后台进程 默认情况下,进程是在前台运行的,这时就把shell给占据了,我们无法进行其它操作。...对于那些没有交互的进程,很多时候,我们希望将其在后台启动,可以在启动参数的时候加一个’&'实现这个目的,后台进程会随着Shell退出而结束。...守护进程 如果一个进程永远都是以后台方式启动,并且不能受到Shell退出影响而退出,一个正统的做法是将其创建为守护进程(daemon)。守护进程值得是系统长期运行的后台进程,类似Windows服务。...守护进程与后台进程 后台进程的文件描述符也是继承于父进程,例如shell,所以它也可以在当前终端下显示输出数据。...子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。

    70220

    Linux之进程管理(3)作业管理

    对运行中的进程:使用Ctrl+z 2、尚未启动的作业:COMMAND &  (在命令行的最后面加一个&符号) 后台作业与终端关系的处理: 后台作业虽然被送往后台允许,但其依然与终端相关;退出终端,将关闭后台作业...,这样即断电,下次还恢复到screen的当前状态 查看所有后台作业命令: jobs 命令 jobs命令例子: #将/etc/下的所有shell脚步文件路径保存到临时文件中,并放入后台执行 [root@localhost.../tempfile.log & 解析:这里显示 Runing表示正在执行中,因为文件太多所以执行速度不如上面快,执行结束后,如果不再查看jobs,进程会自动清除,并退出当前作业列表。...,此时可以执行其他操作,此作业执行完成后会自动退出进程并清除作业记录。...3个子shell各种运行自己。

    1.2K20
    领券