我见过很多类似的问题,但问题是其他解决方案都没有解决我的问题。我想运行 2 个 python 脚本并使用 .redirect 将它们的输出重定向到单独的日志文件nohup。
此代码位于名为的 bash 脚本中startmain:
nohup python3 GUI.py > GUI.log 2>&1 &
nohup python3 main.py > main.log 2>&1 &
Run Code Online (Sandbox Code Playgroud)
当我运行时sh startmain,脚本都会执行,但不会将任何内容写入任一日志文件。
现在假设我startmain通过删除&行末尾的字符来更改代码:
nohup python3 GUI.py > GUI.log 2>&1
nohup python3 main.py > main.log 2>&1
Run Code Online (Sandbox Code Playgroud)
这段代码表示我不希望脚本在后台运行,因此只有 GUI.py 运行;然而,这里它实际上将 GUI.py 的所有输出定向到 GUI.log。我知道为什么 main.py 不在这里运行,但我不知道为什么在这种情况下输出会写入 GUI.log,但当我尝试在后台运行脚本时却不会。
知道我的问题是什么吗?我的问题与类似问题的不同之处在于我正在执行两个脚本,这可能是它不起作用的原因。
ViewModel我想在单击按钮时使用带有数据绑定的复选框来禁用复选框,但除非片段被销毁并重新创建,否则 UI 不会更新。
似乎有很多类似的问题,但最相似的问题似乎都可以通过设置来解决binding.lifecycleOwner,我已经完成了。
片段_复选框_数据绑定.xml:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".CheckboxDatabindingFragment">
<data>
<variable
name="viewModel"
type=".CheckboxDatabindingFragmentViewModel" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<CheckBox
android:id="@+id/my_checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:enabled="@{viewModel.checkboxEnabled}" />
<Button
android:id="@+id/my_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="@{() -> viewModel.startClicked()}" />
</LinearLayout>
</layout>
Run Code Online (Sandbox Code Playgroud)
CheckboxDatabindingFragment.kt:
class CheckboxDatabindingFragment() : Fragment() {
private lateinit var viewModel: CheckboxDatabindingFragmentViewModel
private var _binding: FragmentCheckboxDatabindingBinding? = null
private val binding get() = _binding!!
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View {
viewModel = ViewModelProvider(this).get(CheckboxDatabindingFragmentViewModel::class.java )
_binding …Run Code Online (Sandbox Code Playgroud) android android-fragments kotlin android-databinding android-viewmodel