问题列表 - 第37889页

SIGINT如何与其他终止信号相关?

在POSIX系统上,终止信号通常具有以下顺序(根据许多MAN页面和POSIX规范):

  1. SIGTERM - 礼貌地要求进程终止.它将正常终止,清理所有资源(文件,套接字,子进程等),删除临时文件等.

  2. SIGQUIT - 更有力的请求.它应该终止不正常,仍然清理绝对需要清理的资源,但可能不会删除临时文件,可能会在某处写入调试信息; 在某些系统上也会写入核心转储(无论信号是否被应用程序捕获).

  3. SIGKILL - 最有力的要求.甚至没有要求该过程做任何事情,但系统将清理过程,无论是否喜欢.最有可能是编写核心转储.

SIGINT如何适应这张照片?当用户点击CRTL + C时,CLI进程通常由SIGINT终止,但是后台进程也可以由SIGINT使用KILL实用程序终止.我在规范或头文件中看不到的是SIGINT是否比SIGTERM更强或更强,或者SIGINT和SIGTERM之间有任何区别.

更新:

到目前为止,我发现的终止信号的最佳描述是在GNU LibC文档中.它很好地解释了SIGTERM和SIGQUIT之间存在预期的区别.

它说关于SIGTERM:

这是礼貌地要求程序终止的正常方式.

它说关于SIGQUIT:

[...]并在终止进程时生成核心转储,就像程序错误信号一样.您可以将此视为用户"检测到"的程序错误情况.[...]在处理SIGQUIT时最好省略某些类型的清理.例如,如果程序创建临时文件,它应该通过删除临时文件来处理其他终止请求.但是SIGQUIT最好不要删除它们,以便用户可以与核心转储一起检查它们.

而SIGHUP也解释得很好.SIGHUP实际上不是终止信号,它只是意味着用户的"连接"已经丢失,因此应用程序不能指望用户读取任何进一步的输出(例如stdout/stderr输出),并且没有输入可以从用户不再.对于大多数意味着他们退出的应用程序.从理论上讲,应用程序还可以决定在收到SIGHUP时进入守护进程模式,现在作为后台进程运行,将输出写入已配置的日志文件.对于已经在后台运行的大多数守护进程,SIGHUP通常意味着他们将重新检查其配置文件,因此您在编辑配置文件后将其发送到后台进程.

但是,除了CRTL + C发送的SIGINT之外,此页面上没有有用的SIGINT解释.是否有理由以不同于SIGTERM的方式处理SIGINT?如果是这样,那将是什么原因以及如何处理不同?

unix linux posix

95
推荐指数
4
解决办法
5万
查看次数

是否有可能在F sharp下使用CUDA编写GPU应用程序?

我有兴趣使用F#进行数值计算.如何在F#下使用NVIDIA的CUDA标准访问GPU?

.net f# cuda gpu-programming

9
推荐指数
4
解决办法
1927
查看次数

获取Windows上的分区列表

目标

我正在将文件系统移植到Windows,并且正在为mounter可执行文件编写更像Windows的界面.此过程的一部分是让用户找到分区并选择驱动器号.最终分区的选择已经导致一些我可以使用打开CreateFile(),open(),fopen()或类似的.

信息

Windows似乎围绕卷的概念展开,这似乎与磁盘不太相似,并且仅适用于已安装的文件系统.

我所拥有的有前途的潜在客户包括:

然而,这些都以卷或其偏移结束,而不是/dev/sda1我所追求的特定于分区的句柄.

这个问题是在一个非常类似的事情之后,我认为是赏金,直到我发现OP是在物理磁盘名称之后,而不是分区.这个答案包含一个强制分区名称的方法,我想避免这种情况(或者查看包含可能路径边界的文档).

我想要:

  • 更正Windows中未安装分区的术语和文档.
  • 一种有效且文档化的方法,可靠地检索所有可用分区.
  • 最接近拟合在Linux作为可用的分区文件的抽象,其中所有的IO被绑定到磁盘打开的分区的适当区域.

Update0

虽然主要目的仍然是打开原始分区,它出现在溶液可以包括第一获取的句柄每个磁盘驱动器,然后使用,反过来,以获得各分区.如何枚举所有磁盘驱动器(即使那些已经没有安装卷的磁盘驱动器)也是必需的.

c c++ windows winapi disk-partitioning

9
推荐指数
2
解决办法
8859
查看次数

如何正确配置嵌入式OpenEJB容器以进行测试?

这是我的SLSB:

@Stateless
public class MyService {
  PersistenceContext(unitName = "abc")
  EntityManager em;
  public boolean exists(int id) {
    return this.em.find(Employee.class, id) != null;
  }
}
Run Code Online (Sandbox Code Playgroud)

这是我的persistence.xml(我正在使用Glassfish v3):

<persistence>
  <persistence-unit name="abc">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>java:/MyDS</jta-data-source>
    <properties>
        <property name="hibernate.archive.autodetection" value="class" />
        <property name="hibernate.dialect"
          value="org.hibernate.dialect.MySQLInnoDBDialect" />
    </properties>
  </persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试使用OpenEJB嵌入式容器创建测试.这是我的测试类:

class MyServiceText {
  @Test
  public void testChecksExistence() throws Exception {
    Properties properties = new Properties();
    properties.setProperty(
        javax.naming.Context.INITIAL_CONTEXT_FACTORY,
        "org.apache.openejb.client.LocalInitialContextFactory"
    );
    InitialContext ic = new InitialContext(properties);
    // actual testing skipped
  }
}
Run Code Online (Sandbox Code Playgroud)

我想用HSQL进行测试.如何指示OpenEJB我的持久性单元"abc"在测试期间必须指向HSQL?我要创建一个新版本persistence.xml吗?我要用 …

java maven-2 maven-3 openejb ejb-3.0

5
推荐指数
1
解决办法
5431
查看次数

Parse :: CPAN ::作者的目的是什么?

Parse :: CPAN :: Authors模块的目的是什么?

  use Parse::CPAN::Authors;

  # must have downloaded
  my $p = Parse::CPAN::Authors->new("01mailrc.txt.gz");
  # either a filename as above or pass in the contents of the file
  my $p = Parse::CPAN::Authors->new($mailrc_contents);

  my $author = $p->author('LBROCARD');
  # $a is a Parse::CPAN::Authors::Author object
  # ... objects are returned by Parse::CPAN::Authors
  print $author->email, "\n";   # leon@astray.com
  print $author->name, "\n";    # Leon Brocard
  print $author->pauseid, "\n"; # LBROCARD

  # all the author objects
  my @authors = $p->authors;
Run Code Online (Sandbox Code Playgroud)

描述

Comprehensive Perl Archive …

perl parsing cpan

0
推荐指数
1
解决办法
176
查看次数

展开gcc编译器优化

我有兴趣看到gcc实际优化代码的代码.我有办法吗?

我已经经历了其他几个类似的questoins,我尝试过几件事,

  1. -Wa,ahl = filename.lst: - 这个选项非常好,你可以浏览代码和相应的机器代码,但是当我启用O3选项时它并不好.
  2. 倾倒优化树: - 我相信gcc给了我很多调试信息.但我不知道如何破译它.如果有人能指出任何可用的信息,我将很高兴.

还有其他更好的方法,找出gcc优化代码的哪一部分?

谢谢,Madhur

gcc compiler-optimization

4
推荐指数
1
解决办法
431
查看次数

验证DataMapper中组合字段的唯一性

我希望能够在我的数据库中放置条目,其中制造商将被多次代表但不是制造商和型号的相同组合.所以"索尼(制造商),电视(型号)"还可以"索尼(制造商),OtherTv(型号)",但第三个条目"索尼(制造商),电视(型号)"自制造商和型号组合以来并不合适不是唯一的.我尝试了:key => true验证,但似乎没有用.而且我不能像validates_uniqueness_of :manufacturer AND :model我猜的那样做.你是怎么做到的?

class Tvs
  include DataMapper::Resource

  property :id,           Serial
  property :manufacturer, String, :key => true
  property :model,        String, :key => true

  validates_uniqueness_of :
end
Run Code Online (Sandbox Code Playgroud)

ruby validation datamapper sinatra

3
推荐指数
1
解决办法
1323
查看次数

Www和非www网站

我有一个域名http://www.testexample.com.当我登录http://www.testexample.com并在浏览器中返回http://testexample.com时; 不显示登录的用户信息.
我知道上述两种方法都有不同的处理方式,因此在访问http://testexample.com时,它不会保留http://www.testexample.com的会话.

如果cakephp有办法在TLD上进行匹配,请告诉我.因此,每当我输入http://testexample.com时,都应该参加http://www.testexample.com的会话

我使用以下代码从一个URL重定向到另一个URL

RewriteCond %{HTTPS} off   
RewriteCond %{HTTP_HOST} ps6309 [NC]   
RewriteRule ps6309.domain.co.in [L,R=301]
Run Code Online (Sandbox Code Playgroud)

这是在我的本地测试机器上.这有时有效,有时则无效.
我还将rewritelog指令添加到我的httpd.conf文件中.但是日志文件没有得到更新.如果有人有任何指示,请告诉我.

php cakephp

5
推荐指数
1
解决办法
1078
查看次数

SOLR - 如何将构面计数限制为结果集中返回的行

/select/?q=*:*&rows=100&facet=on&facet.field=category

我有大约10万个索引的文件.但我只使用rows = 100返回100个文档.为类别返回的构面计数,但返回索引的所有文档的计数.

我们可以以某种方式将facet限制为返回的结果集吗?即仅100行?

search solr facet

8
推荐指数
2
解决办法
7699
查看次数

从Drupal网站创建一个iframe

我有一个drupal网站.我想生成一个包含我的drupal网站内容的Iframe,其他网站可以嵌入.

我怎么认为这可以实现:

方法1:创建一个独立于drupal引擎的php脚本.

导入配置文件,从而获得对数据库的访问权限.将内容生成为独立网页.将此脚本的网址分发为iframe的源网址.问题:无法在iframe中提供drupal功能,例如与登录用户的交互.

方法2:从drupal中创建iframe.

使用hoom_menu(iframe的url)创建一个定义菜单项的新模块.从菜单项的回调函数定义iframe的内容.然后以某种方式为所需的iframe url分配一个自定义的page.tpl.php主题,以便只显示iframe的内容,而不显示所有其他页面元素(块,菜单,页脚等).

任何评论,特别是方法2将非常感谢!:)

iframe drupal

4
推荐指数
1
解决办法
7514
查看次数