Skip to content

Instantly share code, notes, and snippets.

View TanjimReza's full-sized avatar
🎯
Focusing

Tanjim Reza TanjimReza

🎯
Focusing
View GitHub Profile
@TanjimReza
TanjimReza / codex-linux-starting-task-fix.md
Created September 28, 2026 18:19
Fix: Codex desktop app on Linux stuck on 'Starting your task…' (SIGCHLD handler bug + LD_PRELOAD workaround)

Fix: Codex desktop app on Linux stuck on "Starting your task…"

If every new chat in the Codex / ChatGPT desktop app on Linux sits on "Starting your task…" forever, this may be your fix.

What's going on

A few milliseconds after startup, something inside the app binary replaces Node's (libuv's) SIGCHLD handler. After that, the app never finds out when its child processes exit:

  • bash, git, ps and even codex app-server pile up as zombie (<defunct>) processes.
  • The logs say the shell environment timed out and "Git is unavailable", even though git works.
.MODEL SMALL
.STACK 100H
.DATA
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
; Multiplication of 3 numbers
MOV AL, 5
@TanjimReza
TanjimReza / number_triangle.asm
Created July 19, 2025 08:13
Assembly (8086) to print Right angled Number Triangle (Left Aligned)
.MODEL SMALL
.STACK 100H
.DATA
NEWL DB 10, 13, "$"
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
MOV AX, 0
[tool.ruff]
line-length = 300
indent-width = 4
exclude = [
".bzr",
".direnv",
".eggs",
".git",
".git-rewrite",
#!/bin/bash
# safe_cleanup.sh
# A safe cleanup script for your VPS.
# This script cleans backups, logs, and temporary files while explicitly excluding
# critical directories such as the MySQL data directory (/www/server/data).
# Retention period is set to 3 days (files older than 3 days will be considered for deletion).
#
# IMPORTANT: Review and adjust the directories and patterns below to suit your environment.
# Always run a dry-run (via the interactive prompts) and keep backups of critical data.
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'colored': {
'()': 'colorlog.ColoredFormatter',
'format': '%(log_color)s%(levelname)-8s%(reset)s %(blue)s%(asctime)s%(reset)s %(white)s%(message)s%(reset)s',
'log_colors': {
'DEBUG': 'cyan',
'INFO': 'green',
[tool.ruff]
line-length = 1200
indent-width = 4
select = [
"I",
]
[tool.ruff.lint]
ignore = [
"E501", # Line too long
; What we know
; 1. Digits in the number, 4 for 1234
; 2. What the divisor starting value should be
; For a 4 digit number, 1000
; 3. Each time divisor gets divided by 10
; 1000 -> 100 -> 10 -> 1
; 1234/1000 -> 234/100 -> 23/10 -> 3/1
.MODEL SMALL
.STACK 100H
.DATA
; 80 -> ffh
.CODE
MAIN PROC
;iniitialize DS
.MODEL SMALL
.STACK 100H
.DATA
res dw ?
remainder db ?
.CODE
MAIN PROC