通常我添加“&”在背景中开始我的过程的角色,例如:
In [41]: df = pd.DataFrame([['123'],['ab 123'],['xyz']],columns = ['A'])
In [42]: df
Out[42]:
A
0 123
1 ab 123
2 xyz
In [43]: df[df["A"].str.contains("\d+")]
Out[43]:
A
0 123
1 ab 123
In [47]: df[df["A"].str.contains("\d+")]['A'].str.extract("(\d+)")
Out[47]:
0 123
1 123
Name: A, dtype: object
In [48]: df['A'].str.extract("(\d+)")
Out[48]:
0 123
1 123
2 NaN
Name: A, dtype: object
但是如果没有“&”我怎么能在背景中制作呢?性格?
user@pc:~$ my_script &
谢谢你们。
答案 0 :(得分:2)
#!/bin/bash
if [[ "$1" != "--nodaemon" ]]; then
( "$0" --nodaemon "$@" </dev/null &>/dev/null & )
else
shift
fi
#...rest of script
这样做是检查它的第一个参数是否是&#34; - nodaemon&#34;,如果是这样,那么在背景中使用参数&#34激活自己("$0"
) - -nodaemon&#34;,它阻止它试图在一种无限循环中重新背景。
请注意,将此作为脚本中的第一个内容将使始终在后台运行。如果它只需要在某些条件下进入后台(例如,当使用参数&#34; start&#34;)运行时,您必须相应地调整它。也许是这样的:
#!/bin/bash
start_server()
{
#my script here with infinite loop ...
}
if [[ "$1" = "start" ]]; then
( "$0" start-nodaemon </dev/null &>/dev/null & )
elif [[ "$1" = "start-nodaemon" ]]; then
start_server
elif #.....