如何使用sbt-native-packager配置添加流程参数?我想将重定向进程stderr的选项添加到文件中?得到这样的结果:
<?php
require_once 'database.php';
require_once 'functions.php';
$content_pic = false;
$id = $_POST['id'];
$title = trim($_POST['title']);
$text = trim($_POST['text']);
if (!empty($_FILES["content_pic"])) {
if ($_FILES["content_pic"]["error"] == UPLOAD_ERR_OK) {
$uploads_dir = __DIR__ . '/files';
$tmp_name = $_FILES["content_pic"]["tmp_name"];
$name = $_FILES["content_pic"]["name"];
if (move_uploaded_file($tmp_name, "{$uploads_dir}/{$name}")) {
$content_pic = "files/{$name}";
}
}
}else{
}
$db = database_connect();
$stmt = $db->prepare($select_query);
$stmt->execute(array($id));
$result = $stmt->fetch(PDO::FETCH_ASSOC);
$stmt = $db->prepare("UPDATE content SET title = ?, text= ?, content_pic = ? WHERE id = ? ");
header("Location: item_view.php?id=" . $id);
exit();
我使用sbt-native-packager 1.2.0-M5构建deb包,sudo -u app bash -c "app >>/var/log/app/stderr.log 2>&1"
日志中的例外,仅在stderr中。此外,我必须在崩溃后手动删除app pid,如果它存在,那么我在stderr中有错误。
我的plugins.sbt:
JavaServerAppPackaging, JDebPackaging, SystemdPlugin, UpstartPlugin
我的build.sbt:
resolvers += Resolver.bintrayRepo("sbt", "sbt-plugin-releases")
// The Play plugin
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.5.8-netty-4.1")
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.2.0-M5")
addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.8.2")
addSbtPlugin("com.lightbend.sbt" % "sbt-javaagent" % "0.1.1")
libraryDependencies += "org.vafer" % "jdeb" % "1.3" artifacts (Artifact("jdeb", "jar", "jar"))
ps我找到了一个解决方法,在ubuntu 16.04中我可以使用journald来收集系统中的所有日志。
答案 0 :(得分:0)
感谢您使用所有相关信息更新问题。这里有几件事。
您启用SystemdPlugin
和UpstartPlugin
。如果它有效,它只会偶然发挥作用。没有版本的native-packager被设计为在单个构建模块中支持单个包类型的多个系统加载器。
解决方案是创建启用了相关系统加载器的子模块。
关于systemd
,你是对的。它提供了捕获进程日志输出的工具。如果您愿意,可以将您的发现添加到native-packager文档中(有systemd plugin section)。
native-packager中的upstart
支持非常简单。由于Ubuntu正在切换到systemd
并且您可以随时回退到systemv
,因此没有大量的requeset。这让我找到了解决问题的方法。
您可以使用支持daemon_log_file的SystemVPlugin
。 systemv documentation为您提供了必要的详细信息。
欢呼声, 缪奇