问题列表 - 第25006页

从python中杀死包含其子进程的子进程

我正在使用python 2.5上的子进程模块生成一个java程序(准确地说是selenium服务器),如下所示:

import os
import subprocess

display = 0
log_file_path = "/tmp/selenium_log.txt"
selenium_port = 4455
selenium_folder_path = "/wherever/selenium/lies"

env = os.environ
env["DISPLAY"] = ":%d.0" % display
command = ["java", 
           "-server",
           "-jar", 
           'selenium-server.jar',
           "-port %d" % selenium_port]
log = open(log_file_path, 'a')
comm = ' '.join(command)
selenium_server_process = subprocess.Popen(comm,
                                           cwd=selenium_folder_path,
                                           stdout=log,
                                           stderr=log,
                                           env=env,
                                           shell=True)
Run Code Online (Sandbox Code Playgroud)

一旦自动化测试完成,该过程应该被杀死.我正在使用os.kill这个:

os.killpg(selenium_server_process.pid, signal.SIGTERM)
selenium_server_process.wait()
Run Code Online (Sandbox Code Playgroud)

这不起作用.原因是shell子进程为java生成了另一个进程,并且我的python代码不知道该进程的pid.我已经尝试过杀死进程组os.killpg,但是这也会杀死运行此代码的python进程.由于其他原因,将shell设置为false,从而避免java在shell环境中运行也是不可能的.

如何杀死shell以及由它生成的任何其他进程?

python unix subprocess

19
推荐指数
2
解决办法
2万
查看次数

如何在Bash中使用tail获取文件的最后一个非空行?

如何tail在Bash shell下使用最后一个非空行?

例如,my_file.txt看起来像这样:

你好
hola
bonjour
(空行)
(空行)

显然,如果我这样做,tail -n 1 my_file.txt我会得到一个空行.就我而言,我想得到bonjour.我怎么做?

bash tail line

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

确定FieldInfo是否是编译器生成的后台

标题几乎说明了一切,我怎么知道我是否正在为{get; 设置;}属性?

我正在运行此代码来获取我的FieldInfos:

Class MyType
{
    private int foo;
    public int bar {get; private set; }
}

Type type = TypeOf(MyType);
foreach (FieldInfo fi in type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly | BindingFlags.NonPublic))
{
    // Gets both foo and bar, however bar is called <bar>k__backingfield.
}
Run Code Online (Sandbox Code Playgroud)

所以问题是,我可以以某种方式检测到FieldInfo是一个支持域,而不依赖于检查其名称吗?(这是非常没有文档的,可以在下一版本的框架中破解)

c# reflection

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

如何将ColdFusion加密与Java 1.4.2相匹配?

***甜蜜 - 感谢Edward Smith为CF Technote表示ColdFusion的密钥是Base64编码的.请参阅generateKey()了解'fix'

我的任务是使用Java 1.4.2来匹配给定的ColdFusion代码示例的加密结果.

已知/给定值:

  • 一个24字节的密钥
  • 一个16字节的盐(IVorSalt)
  • 编码是十六进制
  • 加密算法是AES/CBC/PKCS5Padding
  • 样本明文值
  • 经过ColdFusion代码后,样本明文的加密值

假设:

  • ColdFusion代码中未指定的迭代次数,因此我假设只进行一次迭代
  • 24字节密钥所以我假设192位加密

给定/工作的ColdFusion加密代码示例:

<cfset ThisSalt = "16byte-salt-here">
<cfset ThisAlgorithm = "AES/CBC/PKCS5Padding">
<cfset ThisKey = "a-24byte-key-string-here">
<cfset thisAdjustedNow = now()>
<cfset ThisDateTimeVar = DateFormat( thisAdjustedNow , "yyyymmdd" )>
<cfset ThisDateTimeVar = ThisDateTimeVar & TimeFormat( thisAdjustedNow , "HHmmss" )>
<cfset ThisTAID = ThisDateTimeVar & "|" & someOtherData>
<cfset ThisTAIDEnc = Encrypt( ThisTAID , ThisKey , ThisAlgorithm , "Hex" , ThisSalt)>
Run Code Online (Sandbox Code Playgroud)

我的Java 1.4.2加密/解密代码赃物:

package so.example;

import java.security.*;
import …
Run Code Online (Sandbox Code Playgroud)

java encryption coldfusion

7
推荐指数
1
解决办法
2364
查看次数

QTreeWidget扩展标志

即使项目有任何子项,如何使QTreeWidget中的可扩展标志始终可见?如何绘制其他东西而不是默认符号?

谢谢,塞尔

qt pyqt

6
推荐指数
2
解决办法
7690
查看次数

提示并阻止用户导航/关闭页面

根据StackOverflow在添加问题或回复问题时如何执行此操作;

我想用一个提示用户;

"Are you sure you want to navigate away from this page"
"Press OK to continue or Cancel to stay on this page"
Run Code Online (Sandbox Code Playgroud)

我已经尝试过在互联网上找到的几个js片段,但没有什么可以减少芥末.

javascript

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

使用.NET将原始数据打印到热敏打印机

我正在尝试将原始ascii数据打印到热敏打印机.我通过使用此代码示例执行此操作:http://support.microsoft.com/kb/322091但我的打印机始终只打印一个字符,直到我按下换页按钮.如果我用记事本打印东西,打印机将自动进行换页,但不打印任何文本.

打印机通过usb通过lpt2usb适配器连接,Windows 7使用"Generic - > Generic/Text Only"驱动程序.

谁知道出了什么问题?如何打印一些单词并做一些换页?我必须发送一些控制字符吗?如果是的话:我如何发送它们?

编辑14.04.2010 21:51

我的代码(C#)看起来像这样:

PrinterSettings s =  new PrinterSettings();
s.PrinterName = "Generic / Text Only";

RawPrinterHelper.SendStringToPrinter(s.PrinterName, "Test");
Run Code Online (Sandbox Code Playgroud)

按下换页按钮后,此代码将返回"T"(这里有一个黑色的按钮:swissmania.ch/images/935-151.jpg - 对不起,两个超链接的声誉不够)

编辑15.04.2010 16:56

我现在在这里使用代码表格:c-sharpcorner.com/UploadFile/johnodonell/PrintingDirectlytothePrinter11222005001207AM/PrintingDirectlytothePrinter.aspx

我修改了一下,我可以使用以下代码:

byte[] toSend;
// 10 = line feed
// 13 carriage return/form feed
toSend = new byte[1] { 13 };
PrintDirect.WritePrinter(lhPrinter, toSend, toSend.Length, ref pcWritten);
Run Code Online (Sandbox Code Playgroud)

运行此代码与按下换页按钮具有相同的效果,它工作正常!

但是像这样的代码仍然不起作用:

byte[] toSend;
// 10 = line feed
// 13 carriage return/form feed
toSend = new byte[2] { 66, 67 …
Run Code Online (Sandbox Code Playgroud)

c# thermal-printer

6
推荐指数
2
解决办法
3万
查看次数

在SQL服务器中保存俄语文本

我有一个数据库(SQL server express 2008),它有一个定义为文本的列.当我们尝试存储一些中文文本时,它不会被保存.我读到该字段应该是ntext.我现在必须转换到我的表以将列创建为ntext.

我是否必须对设置为拉丁语的数据库进行整理?

JD

sql-server

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

如何默认为数据表视图

如何将Sharepoint设置为默认为特定列表的数据表视图?

sharepoint list

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

Android油漆/帆布问题; 绘制平滑曲线

在Android中用手指在触摸屏上绘图时,如何获得平滑曲线而不是圆点或圆圈?我使用以下代码 -

public class DrawView extends View implements OnTouchListener {
private static final String TAG = "DrawView";

List<Point> points = new ArrayList<Point>();
Paint paint = new Paint();

public DrawView(Context context) {
    super(context);
    setFocusable(true);
    setFocusableInTouchMode(true);

    this.setOnTouchListener(this);

    paint.setColor(Color.WHITE);
    paint.setAntiAlias(true);
}

     @Override
    public void onDraw(Canvas canvas) {
    for (Point point : points) {
        canvas.drawCircle(point.x, point.y, 5, paint);
        // Log.d(TAG, "Painting: "+point);
    }
}

public boolean onTouch(View view, MotionEvent event) {
    // if(event.getAction() != MotionEvent.ACTION_DOWN)
    // return super.onTouchEvent(event);
    Point point = new Point();
    point.x …
Run Code Online (Sandbox Code Playgroud)

android paint curvesmoothing draw android-canvas

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