staging
parent
4af828484c
commit
c6152d5755
@ -0,0 +1,15 @@
|
||||
@startuml
|
||||
participant init
|
||||
participant Service
|
||||
participant "Service Started" as C
|
||||
participant "Command" as D
|
||||
|
||||
init -> Service: +ueventd
|
||||
Service -> C: ueventd started
|
||||
|
||||
init -> Service: +apexd-bootstrap
|
||||
Service -> C: apexd-bootstrap started
|
||||
|
||||
init -> D !!: 'mkdir /acct/uid'
|
||||
init -> D: update_linker_config
|
||||
@enduml
|
@ -0,0 +1,90 @@
|
||||
package cfig.lazybox
|
||||
|
||||
import org.slf4j.LoggerFactory
|
||||
import java.io.File
|
||||
import java.util.regex.Pattern
|
||||
|
||||
class BootingParser {
|
||||
companion object {
|
||||
private val log = LoggerFactory.getLogger(BootingParser::class.java)
|
||||
fun run() {
|
||||
val logLines = File("booting.log").readLines()
|
||||
val regex = Pattern.compile("""\[([^]]+)] \[\s*([0-9.]+)]\[\s*(T\d+)] init: starting service '([^']+)'.*""")
|
||||
for (line in logLines) {
|
||||
val matcher = regex.matcher(line)
|
||||
if (matcher.find()) {
|
||||
val timestamp = matcher.group(1)
|
||||
val kernelTime = matcher.group(2)
|
||||
val tLevel = matcher.group(3)
|
||||
val serviceName = matcher.group(4)
|
||||
|
||||
println("Timestamp: $timestamp, Kernel Time: $kernelTime, T-Level: $tLevel, Service Name: $serviceName")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun run2() {
|
||||
val logLines = File("booting.log2").readLines()
|
||||
|
||||
|
||||
val actionRegex = Pattern.compile("""\[([^]]+)] \[\s*([0-9.]+)]\[\s*(T\d+)] init: processing action \(([^)]+)\) from \(([^)]+)\).*""")
|
||||
val commandRegex = Pattern.compile("""\[([^]]+)] \[\s*([0-9.]+)]\[\s*(T\d+)] init: Command '([^']+)' action=([^\(]+) \(([^)]+)\) took (\d+)ms and (succeeded|failed)(.*)?""")
|
||||
val svcExecRegex = Pattern.compile("""\[([^]]+)] \[\s*([0-9.]+)]\[\s*(T\d+)] init: SVC_EXEC service '([^']+)' pid (\d+) \(([^)]+)\) started; waiting\.""")
|
||||
val serviceStartRegex = Pattern.compile("""\[([^]]+)] \[\s*([0-9.]+)]\[\s*(T\d+)] init: starting service '([^']+)'.*""")
|
||||
|
||||
for (line in logLines) {
|
||||
val actionMatcher = actionRegex.matcher(line)
|
||||
if (actionMatcher.find()) {
|
||||
val timestamp = actionMatcher.group(1)
|
||||
val kernelTime = actionMatcher.group(2)
|
||||
val tLevel = actionMatcher.group(3)
|
||||
val actionName = actionMatcher.group(4)
|
||||
val fromComponent = actionMatcher.group(5)
|
||||
|
||||
println("Timestamp: $timestamp, Kernel Time: $kernelTime, T-Level: $tLevel, Action Name: $actionName, From: $fromComponent")
|
||||
}
|
||||
|
||||
val commandMatcher = commandRegex.matcher(line)
|
||||
if (commandMatcher.find()) {
|
||||
val timestamp = commandMatcher.group(1)
|
||||
val kernelTime = commandMatcher.group(2)
|
||||
val tLevel = commandMatcher.group(3)
|
||||
val command = commandMatcher.group(4)
|
||||
val action = commandMatcher.group(5).trim()
|
||||
val fromComponent = commandMatcher.group(6)
|
||||
val duration = commandMatcher.group(7)
|
||||
val status = commandMatcher.group(8)
|
||||
val failReason = commandMatcher.group(9)?.trim()
|
||||
|
||||
println("Timestamp: $timestamp, Kernel Time: $kernelTime, T-Level: $tLevel, Command: $command, Action: $action, From: $fromComponent, Duration: ${duration}ms, Status: $status${if (failReason != null) ", Reason: $failReason" else ""}")
|
||||
}
|
||||
|
||||
val svcExecMatcher = svcExecRegex.matcher(line)
|
||||
if (svcExecMatcher.find()) {
|
||||
val timestamp = svcExecMatcher.group(1)
|
||||
val kernelTime = svcExecMatcher.group(2)
|
||||
val tLevel = svcExecMatcher.group(3)
|
||||
val serviceName = svcExecMatcher.group(4)
|
||||
val pid = svcExecMatcher.group(5)
|
||||
val context = svcExecMatcher.group(6)
|
||||
|
||||
println("Timestamp: $timestamp, Kernel Time: $kernelTime, T-Level: $tLevel, Service Name: $serviceName, PID: $pid, Context: $context")
|
||||
}
|
||||
|
||||
val serviceStartMatcher = serviceStartRegex.matcher(line)
|
||||
if (serviceStartMatcher.find()) {
|
||||
val timestamp = serviceStartMatcher.group(1)
|
||||
val kernelTime = serviceStartMatcher.group(2)
|
||||
val tLevel = serviceStartMatcher.group(3)
|
||||
val serviceName = serviceStartMatcher.group(4)
|
||||
|
||||
println("Timestamp: $timestamp, Kernel Time: $kernelTime, T-Level: $tLevel, Service Name: $serviceName")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
} // end-of-fun
|
||||
} // end-of-companion
|
||||
}
|
Loading…
Reference in New Issue