How to debug a busy process (no response)
logging
error occured?
pstack $PID
whether there are many locks waiting
progn
(defun MyFunction(input)
(let ((NEWNUM (find input num)))
(if (find input num) ; if this
(progn
(setq num NEWNUM)
(FUNCT2)) ; then execute both of these ;
(list 'not found)))) ; else output this
$ vi /etc/sysctl.conf,将net.ipv4.ip_forward=0更改为net.ipv4.ip_forward=1
$ sysctl -p //使数据转发功能生效
将外网访问192.168.75.5的80端口转发到192.168.75.3:8000端口。
$ iptables -t nat -A PREROUTING -d 192.168.75.5 -p tcp --dport 80 -j DNAT --to-destination 192.168.75.3:8000
将192.168.75.3 8000端口将数据返回给客户端时,将源ip改为192.168.75.5
$ iptables -t nat -A POSTROUTING -d 192.168.75.3 -p tcp --dport 8000 -j SNAT --to 192.168.75.5
$ sudo apt install sssd-ad sssd-tools realmd adcli sssd-tools sssd libnss-sss libpam-sss adcli packagekit
$ sudo realm discover -v $DOMAIN
$ sudo realm join $DOMAIN
/etc/sssd/sssd.conf
$ vim /etc/sssd/sssd.conf
[sssd]
domains = ad1.example.com
config_file_version = 2
services = nss, pam
[domain/ad1.example.com]
default_shell = /bin/bash
krb5_store_password_if_offline = True
cache_credentials = True
krb5_realm = AD1.EXAMPLE.COM
realmd_tags = manages-system joined-with-adcli
id_provider = ad
fallback_homedir = /home/%u@%d
ad_domain = ad1.example.com
use_fully_qualified_names = True
ldap_id_mapping = True
access_provider = ad
# the following is not shown in ubuntu documentation,
# but is necessary for version after 22
ad_gpo_ignore_unreadable = True
ad_gpo_access_control = permissive
$ sudo pam-auth-update --enable mkhomedir
$ getent passwd $USERNAME@$DOMAIN
$ sudo login
ad-client login: $USERNAME@$DOMAIN
Password:
Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-24-generic x86_64)
...
Creating directory '/home/john@ad1.example.com'.
john@ad1.example.com@ad-client:~
$ sudo apt install realmd samba libnss-winbind samba-common-bin libpam-winbind winbind
/etc/resolv.conf
nameserver # BD server ip address
$ sudo realm discover
$ sudo realm join -v --membership-software=samba --client-software=winbind $DOMAIN REALM
/etc/nsswitch.conf
passwd: files systemd winbind
group: files systemd winbind
$ sudo pam-auth-update --enable mkhomedir
$ sudo yum --setopt=obsoletes=0 install obsoleted-package
or edit /etc/yum.conf
obsoletes=0
$ sync; echo 1 > /proc/sys/vm/drop_caches
$ sync; echo 2 > /proc/sys/vm/drop_caches
$ sync; echo 3 > /proc/sys/vm/drop_caches
How to solve the boundaries between different different chunks
How to get an allocated memory chunk
whether the chunk is still used. I want to free the memory only if the process termination or free, with threads free, only do reference count minus 1.
which data structure will be efficient?
$ cat /proc/$pid/smaps
PID
of the process$ ps -aux
/proc/PID/smaps
and save into some file like before_meminc.txt
smaps
and 2nd smaps
, e.g. with$ diff -u before_meminc.txt after_meminc.txt
note down the address range where memory got increased
use pstack
and watch
command to get the right call stack
$ watch -n 1 'pstack $PID | tee -a $PID.stack'
C-c
when we caputred right stack
$ curl https://xxxx.sh | bash