我有两个脚本,分别是'S1'和'S2'.我执行这些脚本,
nohup S1&
nohup S2&
但我希望它们按顺序执行.即,S2应仅在成功完成S1时执行.我该怎么做呢?我怎么知道S1何时完成执行?任何例子都将非常感激.谢谢.
我需要以某种方式退出我的script.sh(返回代码 - 将是最好的),它在后台运行一些其他命令和其他脚本.
我试过通过运行命令
nohup myInScript.sh &
Run Code Online (Sandbox Code Playgroud)
我也试过在script.sh的末尾使用
disown -a[r]
Run Code Online (Sandbox Code Playgroud)
而且我也试图杀了它
kill $$
Run Code Online (Sandbox Code Playgroud)
但是脚本只是在最后一个命令后挂起,不会退出.如何在运行命令后强制退出?请帮忙.
编辑:更具体地说,我在另一台机器上通过ssh远程运行脚本.
我无法记录来自delayed_job进程的消息.这是正在运行的工作.
class MyJob
def initialize(blahblah)
@blahblah = blahblah
@logger = Logger.new(File.join(Rails.root, 'log', 'delayed_job.log'))
end
def perform
@logger.add Logger::INFO, "logging from delayed_job"
#do stuff
end
end
Run Code Online (Sandbox Code Playgroud)
我尝试了各种日志记录级别,并且在我的环境配置中有config.log_level =:debug.我从monit运行delayed_job.我正在使用delayed_job 3.0.1和ruby 1.9.3以及rails 3.0.10.
ruby ruby-on-rails background-process delayed-job ruby-on-rails-3
我正在运行Resque后台任务,并在调用使用Rjb的gem时不断出现分段错误.但是,当不在后台运行时,一切正常.这是gem中的一行,导致错误:
def self.rjb_initialize
return if ::Rjb::loaded?
::Rjb::load(nil, self.jvm_args) #THIS IS WHERE THE ERROR TRACES TO
set_java_logging if self.log_file
end
Run Code Online (Sandbox Code Playgroud)
宝石加载.jar文件,你可以看到,但同样,一切都很完美,当不在后台时.什么可能导致问题,是否可以修复它?
ruby-on-rails background-process segmentation-fault ruby-on-rails-3 rjb
嗨,有人可以给我一个示例代码,每五分钟获取一次位置,我已经尝试了,我可以通过按钮按钮获得一次位置,但我需要它显示一次五分钟.
谢谢
这是我的代码:
public void checkLocation(View v) {
//initialize location manager
manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
//check if GPS is enabled
//if not, notify user with a toast
if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
Toast.makeText(this, "GPS is disabled.", Toast.LENGTH_SHORT).show();
} else {
//get a location provider from location manager
//empty criteria searches through all providers and returns the best one
String providerName = manager.getBestProvider(new Criteria(), true);
Location location = manager.getLastKnownLocation(providerName);
TextView tv = (TextView)findViewById(R.id.locationResults);
if (location != null) {
tv.setText(location.getLatitude() + " latitude, " …Run Code Online (Sandbox Code Playgroud) 我正在研究如何在活动即将开始时向我们的应用添加通知.其他只是日历应用程序提供此功能,但我的研究让我感到困惑,他们如何实现这一目标.
根据Apple文档: 对于需要更多执行时间来实现的任务,您必须请求特定权限才能在后台运行它们而不会被暂停.在iOS中,只允许在后台运行特定的应用类型:
好吧,日历应用程序不是这些.如果我安排我的应用程序的本地通知定期唤醒并检查日历,这是不够的,因为我已经完成阅读.使用位置监控选项是不够的 - 如果我的用户整天坐在他/她的办公室怎么办?
显然,可以在手机旁边的其他来源添加/删除日历事件,因此在我的应用启动时设置一堆通知不是解决方案.
日历应用程序如何完成事件前通知?我有几个来自App Store的日历应用程序,他们这样做,所以我知道它可以完成.我的应用程序也需要被App Store接受,所以我不能伪造VoIP作为解决方案.
其他信息:经过更多研究后,我看到这样做的应用程序在关闭(duh)时不会更新,但它们会进行一些后台更新.我仍然不清楚如何保持我的后台进程很长时间(例如一夜之间).
我一直在寻找这个问题,但似乎没有人拥有它.
我有两个iPad.一个充当蓝牙外围设备,始终在前台.由于我对中心方面更感兴趣,因此我将中央iPad背景能够用于BLE-central.我的工作流程如下:
当我运行我的中央iPad应用程序时,步骤3和5每10秒重复一次,即使该服务正在整个时间进行广告宣传.这发生在前景和背景中.
断开连接时,我收到此错误:
Error occurred while disconnecting peripheral: The specified device has disconnected from us.
Run Code Online (Sandbox Code Playgroud)
关于为什么它一直断开的任何想法?如果没有数据传输,CoreBluetooth会清理连接吗?现在,我的核心是对外围特征进行一次性读取.它没有订阅更新,因为值是静态的.谢谢!!
我想知道如果CMMotionActivity发生变化,系统是否可以在后台唤醒应用程序,例如,如果用户在坐下后开始步行/跑步,我希望能够执行一些代码并安排本地通知.
有没有办法要求系统在后台唤醒我的应用程序?
编辑:通过查看引用,它似乎是不可能的("[...]并且在您的应用程序被暂停时不会提供更新."),但也许还有其他方法?
我正在创建一个应用程序,每隔半小时检查一次用户位置,并在本地数据库中更新用户的位置,然后根据用户的位置运行CRUD查询,即使应用程序未运行也是如此.我该怎么做 ?
我已经参考了这篇http://techtej.blogspot.com.es/2011/03/android-thread-constructspart-4.html文章,我仍然对我的结果的正确方法感到困惑?
根据文章我有4个选项可供选择
1)服务:但是因为我觉得这对本地数据库来说是一个很长的操作,我觉得我应该忽略这个.
2)IntentService:这不能执行多个任务,所以我觉得这个也应该避免,因为我必须得到用户的位置并扫描数据库,更新数据库(3个任务)
3)线程:当应用程序未打开时,我不确定如何调用它
4)AsyncTask:当应用程序未打开时,我不确定如何调用它.
基本上我在处理位置数据时寻找像在本地数据库上运行的CRON JOB之类的东西.
如果你可以把我链接到一些教程并用一个简单的例子回答,让我理解所有4种方法的区别,那将是很棒的.
// 3月16日编辑:我已经阅读了一些关于JobScheduler的内容,该内容已在API 21中引入,但不确定它是否也支持Gingerbread,这是我的问题的正确方法
感谢名单
我正在寻找在Heroku中执行一项非常长的任务的最佳方法.
我使用Ruby On Rails作为我的Web应用程序,我有一个很长的任务,我希望每周星期天在晚上运行它.大约需要15~20分钟.我已经有了Rufus-Scheduler,但我不确定它是最有效的解决方案.
我还发现了Heroku中具有延迟作业的后台任务.但这是处理它的最佳方式吗?
谢谢.