有没有人使用start-stop-daemon和mono-service2一起成功?我已经和它斗争了几天了,已经有了各种各样的工作,但是没有成功为单声道服务获得一个功能齐全的init脚本.
这是我迄今所学到的:
单声道或单声道服务exe必须命名为变量DAEMON(您不能将您的exe列为DAEMON)
您必须使用--background标志...否则,当从包安装程序执行此脚本时(在我的情况下为deb).安装程序结束时服务终止(与安装程序分叉处理的方式有关...我没有对此进行过多次调查).
我已经成功地在其他脚本中使用mono-service标志列出了pid文件并使用它来停止守护进程,但由于某种原因它在这里不起作用.因此,下面的脚本不会停止服务 - 不知道为什么.开始工作正常.
这是我的部分功能初始化脚本:
#! /bin/sh
### BEGIN INIT INFO
# Provides: ServiceName
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Starts and Stops Service
# Description: Service start|stop|restart
### END INIT INFO
# Author: Author
#
# Do NOT "set -e"
# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Description of the service"
NAME=Service.exe
DAEMONNAME=ServiceDaemon.sh
INSTALLDIR=/usr/sbin/ …Run Code Online (Sandbox Code Playgroud) 在python中,编写如下__init__定义是不好的形式:
class someFileType(object):
def __init__(self, path):
self.path = path
self.filename = self.getFilename()
self.client = self.getClient()
self.date = self.getDate()
self.title = self.getTitle()
self.filetype = self.getFiletype()
def getFilename(self):
'''Returns entire file name without extension'''
filename = os.path.basename(self.path)
filename = os.path.splitext(filename)
filename = filename[0]
return filename
def getClient(self):
'''Returns client name associated with file'''
client = self.filename.split()
client = client[1] # Assuming filename is formatted "date client - docTitle"
return client
Run Code Online (Sandbox Code Playgroud)
初始化变量是否调用返回字符串的函数?或者它被认为是懒惰的编码?这主要是为了救我写something.filetype的something.getFiletype(),每当我想引用该文件的某些方面.
此代码用于按客户端将文件排序到文件夹中,然后按文档类型排序,以及基于文件名中的数据进行其他操作.
我刚刚开始在我的学校编写代码,我正在学习如何使用Python.我们老师给了我们这个任务:
这是我的代码:
class CustomerInfo:
def __init__ ():
self.name = theName
self.order = theOrder
self.quantity = theQuantity
self.address = theAddress
def setName( self, newName ):
self.Name = newName
def setOrder ( self, newModel ):
self.model = newModel
def setQuantity ( self, newQuantity ):
self.quantity = newQuantity
def setAddress (self, newAddress ):
self.address = newAddress
def getName ( self ):
return self.name
def getOrder ( self ):
return self.order
def getQuantity ( self ):
return …Run Code Online (Sandbox Code Playgroud) 在 Swift 中,您可以在声明变量时在类中初始化变量:
var name: String = "John"
Run Code Online (Sandbox Code Playgroud)
或者你可以用 init 初始化:
var name: String
init(name: String) {
self.name = name
}
Run Code Online (Sandbox Code Playgroud)
您使用哪个版本以及何时使用?
表格.py
class AddDuration(forms.Form):
def __init__(self, *args, **kwargs):
super(AddDuration, self).__init__(*args, **kwargs)
// set value to relates_to_choices
relates_to_choices = ????????????? // Something like self.choices
self.fields['duration'].choices = relates_to_choices
duration = forms.ChoiceField(required=True)
Run Code Online (Sandbox Code Playgroud)
现在,我有一个包含类的 views.py 文件
class AddDurationView(FormView):
template_name = 'physician/add_duration.html'
form_class = AddDurationForm
Run Code Online (Sandbox Code Playgroud) 我正在尝试快速创建饼图,并希望从头开始创建代码,而不是使用 3rd 方扩展。
我喜欢它是@IBDesignable 的想法,所以我从这个开始:
import Foundation
import UIKit
@IBDesignable class PieChart: UIView {
var data: Dictionary<String,Int>?
required init(coder aDecoder: NSCoder) {
super.init(coder:aDecoder)!
self.contentMode = .Redraw
}
override init(frame: CGRect) {
super.init(frame: frame)
self.backgroundColor = UIColor.clearColor()
self.contentMode = .Redraw
}
override fun drawRect(rect: CGRect) {
// draw the chart in here
}
}
Run Code Online (Sandbox Code Playgroud)
我不确定的是如何最好地将数据放入图表中。我应该有这样的事情:
@IBOutlet weak var pieChart: PieChart!
override func viewDidLoad() {
pieChart.data = pieData
pieChart.setNeedsDisplay()
}
Run Code Online (Sandbox Code Playgroud)
或者,还有更好的方法?想必是没有办法在init函数中包含数据吧?
提前致谢!
我目前正在使用 Yocto 安装 dnsmasq,但我想删除自动启动。
所以我创建了一个 .bbappend 文件,我尝试了类似的东西:
pkg_postinst_${PN} () {
update-rc.d dnsmasq -f remove
}
Run Code Online (Sandbox Code Playgroud)
但它没有用,我不知道如何使用 bbappend 文件删除这个 init 脚本。
谢谢,皮埃尔-奥利维尔
我有这个python代码。结果是TopTest: attr1=0, attr2=1X 很好,但结果是SubTest: attr1=2, attr2=3Y,我不太明白。
基本上,我有一个类属性,它是一个计数器,它在__init__ method. 当我启动 Y 时,计数器设置为 2,然后才分配属性。我不明白为什么它从 2 开始。子类不应该复制超类并且计数器从 0 重新开始吗?
class AttrDisplay:
def gatherAttrs(self):
attrs = []
for key in sorted(self.__dict__):
attrs.append('%s=%s' % (key, getattr(self, key)))
return ', '.join(attrs)
def __repr__(self):
return '[%s: %s]' % (self.__class__.__name__, self.gatherAttrs())
class TopTest(AttrDisplay):
count = 0
def __init__(self):
self.attr1 = TopTest.count
self.attr2 = TopTest.count+1
TopTest.count += 2
class SubTest(TopTest):
pass
X, Y = TopTest(), SubTest()
print(X)
print(Y)
Run Code Online (Sandbox Code Playgroud) 我想知道UIView用特定框架初始化自定义的最干净的方法是什么。
在UIView从设计XIB文件。
这是我的实现:
class CustomView : UIView {
@IBOutlet var outletLabel: UILabel!
public required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setupView()
}
public override init(frame: CGRect) {
super.init(frame: frame)
setupView()
}
private func setupView() {
// Set text for labels
}
}
Run Code Online (Sandbox Code Playgroud)
这是我想在我的 ViewController 中初始化它的方式:
let screenSize: CGRect = UIScreen.main.bounds
let screenWidth = screenSize.width
let frame = CGRect(x: 0, y: 0, width: screenWidth - 50, height: 70)
let customView = CustomView.init(frame: frame)
Run Code Online (Sandbox Code Playgroud)
但它不起作用,我有一个没有任何插座的白色 …
我正在使用 Flutter 制作一个命令和控制应用程序,但遇到了一个奇怪的问题。该应用程序的主状态页面显示了一个有状态小部件列表,每个小部件都拥有一个 WebSocket 连接,该连接从连接的机器人平台流式传输状态数据。当机器人本身被硬编码时,这很有效。但是现在我正在动态添加它们(通过条形码扫描),只有第一个小部件显示状态。
使用调试器的进一步调查表明,这是因为仅为列表中的第一个小部件创建了状态。随后添加的窗口小部件越来越成功构建,但没有得到一个状态。这意味着除了添加的第一个小部件之外,不会调用 createState 。我检查了小部件本身是否确实被添加到列表中,并且它们每个都有唯一的哈希码。此外,IOWebSocketChannel 具有唯一的哈希码,并且所有小部件数据对于列表中的不同元素都是正确且唯一的。
关于可能导致此问题的任何想法?
HomePageState 的代码:
class HomePageState extends State<HomePage> {
String submittedString = "";
StateContainerState container;
List<RobotSummary> robotList = [];
List<String> robotIps = [];
final GlobalKey<ScaffoldState> scaffoldKey = new GlobalKey<ScaffoldState>();
void addRobotToList(String ipAddress) {
var channel = new IOWebSocketChannel.connect('ws://' + container.slsData.slsIpAddress + ':' + container.slsData.wsPort);
channel.sink.add("http://" + ipAddress);
var newConnection = new RobotSummary(key: new UniqueKey(), channel: channel, ipAddress: ipAddress, state: -1, fullAddress: 'http://' + container.slsData.slsIpAddress + ':' + container.slsData.wsPort,); …Run Code Online (Sandbox Code Playgroud)